Visual StudioはDLLをコピーしていないMSBuild
-
10-12-2019 - |
質問
私たちのVisual Studio 2010プロジェクトでは、他のものの中で - SmartAssembly.Attributes.dll
とそれは私たちのローカルDevマシンのBin/Debug
またはBin/Release
フォルダに正しくコピーされます。ビルドサーバー上では、これは他のすべての参照に当てはまりますが、 'smartAssembly.Attributes.dll'ではそうではありません。ビルドは成功します。
チェックする必要がありますか?
ありがとう。
解決
.csproj
ファイル(または.vbproj
ファイル)を開き、アセンブリ参照を探します。その後、ヒントパスがビルドサーバーでまだ有効であることを確認してください。時にはVS2010は、.csproj
ファイル自体に対して1つを基準にして使用するのではなく、絶対ヒントパスを追加することがあるため、ドライブ文字は別のマシンで無効になる可能性があります。
参照は、以下のものと同様に見えます(私は以下のXMLのすべてを説明するために作成され、無効にしています)、ビルドサーバーで絶対的なヒントパスが無効になる可能性があります(例:ドライブがありません)。 d
.
<Reference
Include="SmartAssembly.Attributes, Version=8.0.0.0,
Culture=neutral, PublicKeyToken=b03f1f7f1ad5da3a,
processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<Private>true<Private>
<!-- The HintPath below should exist and be valid in your build server -->
<HintPath>d:\temp\SmartAssembly.Attributes.dll<HintPath>
</Reference>
HintPathを.csproj
ファイルを基準にしてより一般的にするために変更することができます。例えば:
.
<HintPath>..\libs\SmartAssembly.Attributes.dll<HintPath>
他の問題は、<Private>true<Private>
がそこにないということかもしれません。この属性はVisual StudioのCopyLocal
プロパティにマッピングされているので、.csproj
から欠落している場合、DLLはMSBUILDによってbin\Debug
またはbin\Release
にコピーされません。 > http://bronumski.blogspot.com/2009/ 06 / PROJECT-REFERENE-fun-and-games.html