8

この質問は上記のリンクでは回答されていません...

Visual Studioがローカルマシン上で問題なくビルドされるTFSでいくつかの問題が発生しましたが、サーバー上でビルドしようとすると、ビルドエラーが発生します。エラーはこの質問には関係ありません。

私が抱えている問題は、エラーを修正するためにローカルマシン上のいくつかのファイルを手動で編集する必要があり、それらが手動で編集されたため、TFSが変更を検出しないため、変更セットをにアップロードできないことです。そこでの問題を修正したであろうサーバー。

私の最初の主な質問は、TFSにすべてのローカルファイルをサーバーにコピーさせるにはどうすればよいですか。全体の逆のようなものです:

ビューに移動/その他のウィンドウ/ソース管理エクスプローラー/関連するプロジェクトを右クリック/詳細/特定のバージョンを取得/[すべてのファイルを上書き...]をオン/[OK]を押します。

これは(おそらく、私の経験では必ずしもすべてを取得できるとは限らないため)、サーバーからローカルマシンに完全なファイルセットを取得します。

TFSが部分的なファイルセットをアップロードするのにうんざりしていて、ソリューションがローカルで削除されてからサーバーから再ダウンロードされると、不足しているファイルと参照をバックアップから取得する必要があります。完全に、そして最初に正しくアップロードされていれば、おそらくこれらの問題は少なくなるでしょう。これが私の主な質問です。ファイルが変更されているかどうかに関係なく、TFSにすべてのファイルを強制的にアップロードするにはどうすればよいですか。

私が特にnugetパッケージマネージャーで抱えている問題をさらに説明するために。[ビルド中にNuGetに不足しているパッケージのダウンロードを許可する]オプションを無効にしました。そのため、ローカルで実際のビルドエラーが発生しました。はい、そうです、ビルドエラー。このような...

プロジェクトXXX:パッケージの復元はデフォルトで無効になっています。同意するには、[Visual Studioオプション]ダイアログを開き、[パッケージマネージャー]ノードをクリックして、[ビルド中に不足しているパッケージのダウンロードをNuGetに許可する]をオンにします。環境変数「EnableNuGetPackageRestore」を「true」に設定して同意を与えることもできます。

これにより、エラーを取り除くためにこのオプションを再度有効にする必要があります。ビルドを妨げないように、このようなエラーは警告として表示する必要があるため、私はこれに悩まされています。これは非常に残念なことであり、その結果、NuGetについての意見は非常に貧弱です。

とにかく十分に怒鳴りましたが、選択の余地がなかったので、これを再度有効にしました。しかし、これが無効にされたバージョンはサーバーにアップしました。サーバーでこのエラーが発生します。再度有効にしてチェックインを試みましたが、TFSでは許可されませんでした。(警告...保留中の変更はありません)。もちろんそうではありません、それはただのばかげたチェックボックスです。おそらく何が変わったのでしょう。しかし、NuGetの誰かが警告を適切に設計するように教えてくれなかったため(エラーを引き起こしてビルドを防ぐのではなく)、サーバーでエラーが発生し、すべてを修正することはできません。

繰り返しになりますが、TFSに、変更または変更されていないすべてのファイルを逐語的にサーバーに取り込むように強制するにはどうすればよいですか。このように、ローカルで問題を修正すると、サーバーでも問題を修正する必要があります。または、少なくとも、次にダウンロードするときに、ファイル全体が設定されていることが保証されます。

これが私が否定的であるように聞こえる場合はお詫びしますが、私は5日間この状態にあり、開発が完全に停止し、私と会社に多額の費用がかかりました。どんな助けでも大歓迎です。

4

4 に答える 4

11

ファイルシステム内のすべてを取得するようにTFSに指示する方法はありません。あなたがする必要があるのは多段階のプロセスです。最初にディレクトリ全体をチェックアウトします。これにより、手動の変更が上書きされることはありませんが、再度チェックインして、それらの変更を検出することができます。次に、新しいファイルが作成された場合は、ルートディレクトリに追加して、すべての新しい追加を取得する必要があります。最後に、すべての変更をチェックインします。本当に簡単なはずです。

于 2013-02-27T16:33:05.620 に答える
0

TFS 2012を使用している場合は、それLocal Workspacesが適切なソリューションになります。

明確にするためLocal Workspacesに、開発者がローカルで作業しているという意味ではありません。すべてのコードは、とまったく同じ方法でソース管理下にありServer Workspacesます。

Local WorkspacesTFS 2012の新機能であり、問​​題を解決します。あなたにとっての主な利点は、ファイルがもはやマークされていないことですread-only。これにより、最初にチェックアウトを行わなくても、どこからでも(メモ帳、その他のIDE、Visual Studio)編集できます。Visual Studioは、ファイルが変更されたことを自動的に検出し、Pending Changesウィンドウに一覧表示します。

さまざまな種類のワークスペースを比較する良い記事:http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/11/30/team-foundation-server-trying-to-understand-server-versus-local -workspaces.aspx

于 2013-03-04T08:28:24.280 に答える
0

ソース管理エクスプローラーウィンドウを使用して、フォルダーを右クリックし、[比較]を選択するのが好きです。ターゲットフォルダの違い、または新しいファイルの確認を選択で​​きます。異なるファイルは赤で表示されます。次に、それらを右クリックしてファイルをチェックアウトおよびチェックインするか、controlキーを押しながらクリックして一度に複数のファイルを選択できます。

于 2016-05-02T18:37:46.727 に答える
0

はい、炎が発生し始める前に知っていますが、これは従来のことではありません....しかし、団結して作業することで、この問題に頻繁に遭遇します。私がUnity5.5にアップデートし、現在のプロジェクトで多くのものを混乱させたので、文字通り今それを扱っています。Unityからの解決後、私のプロジェクトは完全に同期していません...そして何らかの理由でvis stuはこれらの変更を監視することを拒否します...確かにかなり面倒ですが、毎回正常に解決したので心配しないでください次のようにして、反復を繰り返します。

  1. 別の場所にバックアップフォルダを作成し、全体をコピーします。一意の別のフォルダにある限り、どこにバックアップしてもかまいません。一部のファイルは非表示になる可能性があるため、個々のファイルではなくフォルダをコピーしてください。

  2. 最新バージョンを完全に入手します(TFSによる)。これには時間がかかる場合があるため、別の場所にバックアップしてください。この時点でVSを開いたままにしてください!!!

  3. 「取得した」すべてのファイルを手順1で作成したバックアップで上書きします。ローカルワークスペースは、ローカルスペースにバックアップされたコピーでファイルを上書きするときに、ファイルへの変更を監視し、保留中としてマークします。新しいものに違いがある場合は、それに応じて変更されます。

  4. ソース管理エクスプローラーでTFSサーバーへの保留中の変更を更新します。上書き中に検出された変更は、含まれている変更セクションに追加されます。

出来上がり、ファイルを強制的に処理し、作業し、TFSサーバーに追加します。

于 2017-01-15T07:15:39.287 に答える