@H_403_2@
在我们的解决方案中,我们使用摩尔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文件夹中,因此它不会变成错误.
总而言之,构建将首次部分成功,下次构建将完全成功.
我们试图在构建服务器上没有任何警告.有什么办法可以消除构建服务器上的这种警告吗?
解决方法
我们将所有第三方程序集存储在项目根文件夹的Assemblies文件夹中.我们的任何项目中使用的所有第三方程序集都是从此位置引用的. Assemblies文件夹包含在TFS中.
您似乎从输出文件夹而不是一些常见(Assemblies)文件夹引用XXX.Moles程序集.尝试更新您的引用以使用Assemblies文件夹中的第三方库而不是测试项目的输出文件夹.
编辑:尝试添加检查XXX.Moles程序集是否存在于引用标记中,例如:
<Reference Condition="Exists('..\molesassemblies\XXX.Moles.dll')" Include="XXX.Moles.dll"> <SpecificVersion>False</SpecificVersion> <HintPath>..\molesassemblies\XXX.Moles.dll</HintPath> </Reference>
@H_403_2@