在我们的Visual Studio 2010项目中,我们引用了SmartAssembly.Attributes.dll
,并将其正确地复制到本地开发机器的Bin/Debug
或Bin/Release
文件夹中。在构建服务器上,这适用于所有其他引用,但不适用于“SmartAssembly.Attributes.dll”。构建成功。
我应该检查什么?
感谢。
答案 0 :(得分:6)
打开您的.csproj
文件(或.vbproj
文件),然后查找程序集参考。然后确保提示路径在构建服务器中仍然有效。有时VS2010会添加一个绝对提示路径,而不是使用一个相对于.csproj
文件本身,因此驱动器号可能在另一台机器中无效。
例如,引用可能类似于下面的引用(我编写了下面的所有XML以仅说明它并且它无效),并且绝对提示路径在构建服务器中可能无效(例如,没有驱动器字母 d 那里):
<Reference
Include="SmartAssembly.Attributes, Version=8.0.0.0,
Culture=neutral, PublicKeyToken=b03f1f7f1ad5da3a,
processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<Private>true<Private>
<!-- The HintPath below should exist and be valid in your build server -->
<HintPath>d:\temp\SmartAssembly.Attributes.dll<HintPath>
</Reference>
您可以更改HintPath以使其相对于.csproj
文件,因此更通用。例如:
<HintPath>..\libs\SmartAssembly.Attributes.dll<HintPath>
另一个问题可能是<Private>true<Private>
不存在。此属性映射到Visual Studio中的CopyLocal
属性,因此如果.csproj
中缺少该属性,则不会通过MSBuild将DLL复制到bin\Debug
或bin\Release
。见http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html