6

アセンブリ参照に間違った HintPath があり、奇妙なランダム エラーが発生する状況をよく見かけます。

たとえば、HintPath が正しくありませんが、GAC に対応するアセンブリがあります。これは、プロジェクトがあなたのマシンでは問題なくコンパイルされるが、他のマシンでは失敗することを意味します。

私の場合はその逆で、CIサーバーでもGACにライブラリがあるため、この問題は継続的インテグレーションでは検出できません。

すべての HintPaths を検証し、それらのいずれかが間違っているとビルドが失敗するカスタム MSBuild タスクのようなものを探しています。

4

1 に答える 1

1

ヒント パスが無効な場合にビルドを失敗させたい場合は、何かを明示的に参照しないのはなぜですか? 同じライブラリのバージョンが多数あるため、これは私の会社の SOP です。

例えば:

    <Reference Include="C:\Path\To\Library\MyReference.dll">
      <Private>False</Private>
    </Reference>

または、何らかのパスに基づいてライブラリを動的に参照する場合は、ライブラリ フォルダーを指す "ExternalLibs" などの msbuild プロパティを設定できます (ライブラリをソース管理に保持する場合など)。次に、コマンド ラインを介してそのプロパティを設定するか (msbuild を呼び出すとき)、たとえば、各ユーザーが .user ファイルで上書きできる既定値を指定できます。

    <Reference Include="$(ExternalLibs)\MyReference.dll">
      <Private>False</Private>
    </Reference>

このソリューションは非常に柔軟です。

于 2013-07-16T14:00:45.210 に答える