2012-01-05 9 views
4

私たちの解決策ではいくつかのテストで0.94を使用しています。しかし、それは最初にコンパイルされるたびに、ビルド・サーバーは、警告のカップルが発生します:の警告は、ビルドサーバのMoles dllを解決できませんでした

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (1360): Could not resolve this reference. 
Could not locate the assembly "XXX.Moles, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL". 
Check to make sure the assembly exists on disk. 
If this reference is required by your code, you may get compilation errors. 

私の理解では、ビルドサーバを構築するために開始する前にテストプロジェクトのすべての参照を解決しようとすることで、 molesassemblyフォルダの下にmoles dllが見つからない場合(最初は空であるため)、上記のような警告が生成されます。

しかし、msbuildがこのテストプロジェクトのビルドを開始すると、モルアセンブリが生成されてmoleassembliesフォルダにコピーされるため、エラーにはなりません。

要約すると、最初にビルドが部分的に成功し、次回ビルドが完全に成功します。

ビルドサーバーで警告が表示されないようにしようとしています。ビルドサーバーでこの警告を取り除く方法はありますか?

答えて

3

すべてのサードパーティ製アセンブリは、プロジェクトのルートフォルダ内のアセンブリフォルダに格納されています。すべてのプロジェクトで使用されているすべてのサードパーティ製アセンブリは、この場所から参照されます。 AssembliesフォルダはTFSに含まれています。

一般的な(アセンブリ)フォルダではなく、出力フォルダからXXX.Molesアセンブリを参照しているようです。テストプロジェクトの出力フォルダではなく、アセンブリフォルダからサードパーティライブラリを使用するように参照を更新してください。

EDIT:

<Reference Condition="Exists('..\molesassemblies\XXX.Moles.dll')" Include="XXX.Moles.dll"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\molesassemblies\XXX.Moles.dll</HintPath> 
</Reference> 
+0

私はgeekystevenは、ビルドプロセス中に作成されている自動生成モグラアセンブリ、について話していると信じていますが、後:XXX.Molesアセンブリはリファレンスタグなどに存在する場合はチェックを追加しようResolveReferencesターゲットはMSBuildで発生するため、ビルド警告が発生します。 –

+0

ニックが正しいです、私たちはdllをチェックインしたくありません。 molesアセンブリは、ビルドサーバー上で自動生成されます。そのため、初めてビルドサーバーがdllを検出できないため、警告は出力されますが、エラーは出力されません。 – geekysteven

+0

私の回答を更新しました – Ludwo

関連する問題