MSBuild没有复制DLL,而Visual Studio没有
-
10-12-2019 - |
题
在我们的Visualstudio2010项目中,我们引用了 SmartAssembly.Attributes.dll
它被正确地复制到 Bin/Debug
或 Bin/Release
我们本地开发机器的文件夹。在构建服务器上,这对于所有其他引用都是如此,但对于"SmartAssembly"则不是如此。属性。dll'。构建成功。
我应该检查什么?
谢谢.
解决方案
打开你的 .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>
不存在。此属性映射到 CopyLocal
属性在Visualstudio中,所以如果它在您的 .csproj
, ,DLL不会被复制到 bin\Debug
或 bin\Release
由MSBuild.见 http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html
不隶属于 StackOverflow