4

我们在我们的解决方案中使用摩尔 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文件夹中,所以不会报错。

综上所述,第一次构建会部分成功,下次构建会完全成功。

我们试图在构建服务器上不出现任何警告。有什么办法可以消除构建服务器上的这个警告吗?

4

1 回答 1

3

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

您似乎是从输出文件夹而不是一些常见的(程序集)文件夹中引用 XXX.Moles 程序集。尝试更新您的引用以使用 Assemblies 文件夹中的 3rd 方库,而不是测试项目的输出文件夹。

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

<Reference Condition="Exists('..\molesassemblies\XXX.Moles.dll')" Include="XXX.Moles.dll">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\molesassemblies\XXX.Moles.dll</HintPath>
</Reference>
于 2012-01-06T00:06:45.487 回答