1

Visual Studioでソリューションを作成して、ソリューション自体が「最新の取得」の影響を受ける場所とはまったく異なる他のディレクトリにある.dll依存関係を作成するにはどうすればよいですか。

私が試したのは、ソリューション自体の中に依存関係ソリューションフォルダーを作成し、それにdllを追加することです。そうすれば、ソリューションのディレクトリ構造に属していない場合でも、ソリューションに属します。

たとえば、.slnファイルは次の場所にあります。

D:\ tfs \ repository \ main \ SolutionA \ solution.sln

そしてdllはにあります:

d:\ tfs \ repository \ main \ SolutionX \ Dependencies \ Binaries

私が本当に達成したいのは、次のシナリオを含む、ソリューションを構築するための確実な方法を持つことです。

1- Windows、VisualStudioなどを新しくインストールします。2-VisualStudioを
開きます。3-
TFSでsolution.slnを見つけ、それをダブルクリックして、Visual Studioがソリューション内のすべてのプロジェクトとファイルを取得し、ソリューションを開きます。 4-正常にビルド

依存関係ソリューションフォルダーのアプローチを試し、上記のシナリオを繰り返すと、ソリューション内のすべてのプロジェクトが取得されて開きますが、依存関係ソリューションのコンテンツはTFSから取得されません(Visual Studioはソリューションエクスプローラーに表示されますが) )、これには欠陥があると思います。

ビルド前/ビルド後のスクリプトの作成を伴わないいくつかの提案をいただければ幸いです。

4

3 に答える 3

1

TFS を使用して初めてソリューションを開こうとすると、Source Control Explorerすべての依存関係が取得されるとは限らないことに気付く場合があります。欠落している一部が波線で強調表示される場合がありますReferences

回避策の1つは...

ソリューションのセットアップ

  1. TFS からすべてのソース コードをチェックアウトします (つまりMain、すべてのサブディレクトリ)。
  2. Visual Studio でソリューションを開きます (つまりMyApplication.sln)
  3. ソリューション エクスプローラーで、New Solution Folder呼び出された を作成しThirdPartyDll、適切なアセンブリ参照 (つまり、、...) を追加しAssembly1.dllますAssembly2.dll
  4. ソリューションを TFS にチェックインする

サンプルファイル構造

  • 主要
    • MyApplication.sln
    • ソース
      • マイプロジェクトA
        • MyProjectA.csproj
      • MyProjectB
        • MyProjectB.csproj
    • 依存関係
      • Assembly1.dll
      • Assembly2.dll
于 2012-10-19T15:35:10.617 に答える
0

「ソース管理から開く」機能の制限に遭遇しました。Visual Studio からソース管理にソリューションを追加した場合、次のメッセージが表示されます。

「ソース管理に追加しようとしているプロジェクトにより、他のソース管理ユーザーがこのソリューションを開いたり、新しいバージョンを取得したりすることが困難になる可能性があります。この問題を回避するには、他のソースのバインディング ルートの下の場所からプロジェクトを追加してください。ソリューションで管理されたプロジェクト。」

ソース管理から開くと、ソリューション ルート ディレクトリ (D:\tfs\repository\main\SolutionA) のワークスペース マッピングが作成されますが、SolutionA のピアである SolutionX フォルダーの別のワークスペース マッピングは作成されません。「新しい」マシンでは、SolutionA フォルダーと SolutionX フォルダーの両方を取得するために、d:\tfs\repository\main へのワークスペース マッピングを手動で作成する必要があります。

于 2012-09-09T01:26:45.003 に答える
0

ソリューション フォルダーを作成し、そこに依存関係を追加します。これにより、VS がソリューションの最新情報を取得すると、これらのファイルがダウンロードされます。人々がそのフォルダーを維持する必要があるため、少し脆弱ですが、機能します。

または、nuget パッケージを作成し、ビルド時に復元パッケージを使用します。新しい開発者ボックスを作成するときにいくつかの追加の手順が必要になりますが (ナゲット パッケージ リポジトリを追加する必要があります)、今後のすべてのプロジェクトで機能し、ソリューション フォルダーの方法よりも脆弱ではありません。

于 2012-10-20T01:32:30.263 に答える