4

ソリューションに複数のプロジェクトがあります。各プロジェクトは他のプロジェクトを参照します。dll は非常に大きいので、それを参照するすべてのプロジェクトのビンに含めたくありません。

私のオプションは何ですか?理想的には、それらを 1 つの場所に配置し、各プロジェクトの bin フォルダーに含める必要なく参照したいと考えています。私が考えることができる唯一の場所はGACです。これをどのように回避したかについてのアイデア/提案はありますか?

プロービング パスを使用することは可能ですか? 以前にこれを使用した人はいますか、チュートリアルを教えてくれますか?

パスのプローブを試みましたが、アプリケーションの実行時にエラーが発生しました。これは正しく設定されていませんか? このパスからロードする dll を C:\Projects\myProject\bin フォルダーに配置しました。そして、参照でコピーを false に設定します

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <probing privatePath="C:\Projects\myProject\bin"/>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

ありがとう

4

2 に答える 2

1

参照ライブラリをスタートアップ プロジェクトの出力フォルダーにのみ追加できます。

Add1) 開始プロジェクト、" "、" "を右クリックしますExisting Item。または[Shift]+[Alt]+[A]VS2010のデフォルトとの組み合わせ。

2) タイプ セレクターを " All files (*)" に変更し、ライブラリを見つけて選択します。

3) 「追加」セレクターを「 」に変更しAdd As Link、それを押します。

4) プロジェクトに追加したばかりのリンクを選択し、[プロパティ] ウィンドウで " Copy to Output Directory" を " " に設定しますCopy always。これで、ソリューションをビルドするたびに、このライブラリがスタートアップ プロジェクトの出力フォルダーにコピーされます。

5) この dll を、それを使用するプロジェクトの出力にコピーすることを制限したい場合は、そのプロジェクトの参照を右クリックし、[プロパティ] ウィンドウで " Copy Local" を false に設定します。

意味:

参照された dll が表示される唯一の場所は、スタートアップ プロジェクトの出力ディレクトリになります。

短所:

スタートアップ プロジェクトを変更する場合は、すべてのリンクを再度追加する必要があります。

ソリューション エクスプローラーのスタートアップ プロジェクト ディレクトリが乱雑になります。

于 2013-05-20T14:35:58.620 に答える