2011-09-15 6 views
2

私は、.NET 3.5と4.0のプロジェクトが混在するソリューションを用意しています。外部依存関係のため、3.5プロジェクトをアップグレードすることはできません。参照先のアセンブリに対してVisual Studioビルドの出力場所を指定するにはどうすればよいですか?

このソリューションは単純なプラグインメカニズムを使用しており、すべてのプロジェクトの出力パスをソリューションフォルダの共通のbinフォルダに設定しています。これにより、デバッグ時にプラグインアセンブリを検出して読み込むことができます。

サードパーティのアセンブリを参照している.NET 3.5プロジェクトと、3.5バージョンと同じファイル名を持つ同じアセンブリの4.0バージョンを参照している.NET 4.0プロジェクトがあります。私がビルドすると、サードパーティのアセンブリの1つのバージョンが他のバージョンを上書きします。

これらの依存関係を別のサブフォルダに出力したいので、設定でプロービングプライベートパスを設定できますが、ビルドプロセスでこれを行う方法はわかりません。

答えて

2

CopyLocal:None参照するアセンブリを使用しているすべてのプロジェクトでその参照のプロパティオプションを使用し、ビルドイベントを使用して、そのアセンブリを元のパスから出力フォルダにコピーします。プライマリビルドソリューションを、プラグインに必要な場所にインストールします。これは、プライマリが構築された後にプラグインに必要なdllを1回だけコピーします。

+0

ありがとう、私はこれについて考えていましたが、より良い方法があるかもしれないと考えました。このソリューションを使用しますが、私のポストビルドイベントは、アセンブリの元の場所に戻るのではなく、出力フォルダからサブフォルダにファイルを移動します。この方法では、アセンブリの元の場所は、

+0

にのみ格納されます。ソリューションの新しい構成を作成します。ビルドセクションのプロジェクトプロパティの各ビルド出力ビルドディレクトリは、プロジェクトの関連する深さの場所に応じて.. \ bin \ publicまたは同様にソリューションフォルダに対してビルドされます。ビルド後のイベントでは、$(SoultionDirectory)\ bin \ publicフォルダを使用して、アセンブリに関連する他のアクションについては同じ出力フォルダを指します。 の場所に固定されることはありません。最初に、すべてアセンブリを$(SoultionDirectory)\ bin \ publicの場所に配置します。 2番目に、新しいフォルダの場所からプロジェクトのアセンブリ参照を再利用する –

関連する問題