警告无法解决构建服务器上的Moles dll

时间:2012-01-05 12:36:08

标签: tfs msbuild moles pex-and-moles

我们在解决方案中使用摩尔0.94进行某些测试。但是,每次首次编译时,构建服务器都会引发一些警告:

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开始构建这个测试项目时,将生成mole组件并将其复制到moleassemblies文件夹中,因此它不会变成错误。

总之,第一次构建将部分成功,下次构建将完全成功。

我们正在尝试不在构建服务器上发出任何警告。我们有什么办法可以在构建服务器上消除这种警告吗?

1 个答案:

答案 0 :(得分:3)

我们将所有第三方程序集存储在项目根文件夹的Assemblies文件夹中。我们的任何项目中使用的所有第三方程序集都是从此位置引用的。 Assemblies文件夹包含在TFS中。

您好像是从输出文件夹而不是某些常用(Assemblies)文件夹引用XXX.Moles程序集。尝试更新您的引用以使用Assemblies文件夹中的第三方库而不是测试项目的输出文件夹。

编辑:尝试添加检查XXX.Moles程序集是否存在于Reference标记中,例如:

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