Visual studio 2010 MSBuild不复制DLL,而Visual Studio复制DLL
在我们的Visual Studio 2010项目中,我们引用了Visual studio 2010 MSBuild不复制DLL,而Visual Studio复制DLL,visual-studio-2010,msbuild,Visual Studio 2010,Msbuild,在我们的Visual Studio 2010项目中,我们引用了SmartAssembly.Attributes.dll,并将其正确复制到本地开发人员机器的Bin/Debug或Bin/Release文件夹中。在生成服务器上,这适用于所有其他引用,但不适用于“SmartAssembly.Attributes.dll”。构建成功 我应该检查什么 谢谢。打开您的.csproj文件(或.vbproj文件),然后查找程序集参考。然后确保提示路径在构建服务器中仍然有效。有时VS2010会添加一个绝对提示路径,
SmartAssembly.Attributes.dll
,并将其正确复制到本地开发人员机器的Bin/Debug
或Bin/Release
文件夹中。在生成服务器上,这适用于所有其他引用,但不适用于“SmartAssembly.Attributes.dll”。构建成功
我应该检查什么
谢谢。打开您的
.csproj
文件(或.vbproj
文件),然后查找程序集参考。然后确保提示路径在构建服务器中仍然有效。有时VS2010会添加一个绝对提示路径,而不是使用一个相对于.csproj
文件本身的路径,因此驱动器号可能在另一台机器中无效
例如,该引用可能与下面的引用类似(我编造了下面的所有XML仅用于说明,它无效),并且绝对提示路径在构建服务器中可能无效(例如,那里没有驱动器号d):
另一个问题可能是
true
不存在。此属性映射到Visual Studio中的CopyLocal
属性,因此如果.csproj
中缺少此属性,则MSBuild不会将DLL复制到bin\Debug
或bin\Release
。请参见谢谢迭戈,这正是我们正在做的。\Bin\SmartAssembly.Attributes.dll
我添加了一条评论。我想您可能丢失了true
。我们引用的DLL中没有一个具有此true
属性,并且它们都是复制的…无论如何我都会尝试。如果未定义“Private”,则默认为true。但是,在那里强制输入有助于解决构建问题。
<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>..\libs\SmartAssembly.Attributes.dll<HintPath>