3

プロジェクトの参照に使用する構造のタイプを知りたいと思いましたか?

私が働いている開発者には、AssemblyCache (\\MACHINENAME\AssemblyCache) という共有フォルダーがあり、Windows 2008 AD の GPO 経由で R:\ にマップされます (Developers AD グループに関連付けられています)。

共有コンポーネントには、次のようなものにコピーするビルド後のイベントがあります。

R:\.Net %VERSION%\Project\%SOMETHING%

プロジェクトに共通の場合は「共通」、または特定の場合は、後に「共通」が続くことがあります。.Net バージョン フォルダーの下には、共有アイテム用の共通ディレクトリもあります。

これは、複数のソリューションにまたがる大規模なプロジェクトで、共通の場所からアセンブリを参照できるためです。

ビルド マシンには、開発者が S: にマップした同じ共有名の共有ドライブもあります。これにより、必要に応じて最新の作業ビルドを取得できます。

これはすべて、誰かが新しい PC に乗り、さまざまな場所への参照をコピーすることなくプロジェクトを開くことができるようにするためであり、dev a が dev b と同じ場所からアセンブリを参照していることを確認するためです。

このソリューションは私たちにとってはうまく機能するので、すべての開発者が同じパスからアセンブリを参照できるようにするために、どのようなソリューションを用意しているのでしょうか?

4

3 に答える 3

6
  • すべての参照アセンブリをソース管理に保存します。
  • コードがアセンブリへの相対パスが同じになるように常にフェッチします(例:../../ CommonLibraries)
  • 全員がローカルドライブにフェッチします

ネットワークドライブを参照する必要があると、さまざまな問題が発生します。

  • 既存のブランチの以前のバージョンを参照して、新しいバージョンにブランチする方法はありません
  • オフラインでの作業の難しさ
  • ビルドマシンなどは他のマシンに依存します-それは自己完結型のビルドではありません
  • パフォーマンスは良くありません
于 2008-12-09T11:47:32.787 に答える
1

You dont need to create a network share. I think you can get away with creating a virtual drive letter for a local folder using the windows subst command for example...

subst R: "C:\.Net %VERSION%\Project\%SOMETHING%"

The advantage here is that an arbitrary path can be routed to a standard well defined path for assemblies hence for example different assembly versions can be remapped to the fixed reference path used by visual studio.

于 2008-12-09T11:55:44.113 に答える
1

あるプロジェクトでは、アセンブリをソースコードリポジトリに追加しました。これも完璧ではありませんが、ファイル共有を使用しているときに簡単に発生する可能性のある新しいバージョンの参照を誤って取得することを防ぎます。

于 2008-12-09T11:49:02.643 に答える