首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSBuild不复制DLL,而Visual Studio复制

MSBuild不复制DLL,而Visual Studio复制
EN

Stack Overflow用户
提问于 2012-03-09 23:08:15
回答 1查看 6.4K关注 0票数 3

在我们的Visual Studio2010项目中,我们引用了SmartAssembly.Attributes.dll,并将其正确地复制到本地开发机器的Bin/DebugBin/Release文件夹中。在生成服务器上,这适用于所有其他引用,但不适用于“SmartAssembly.Attributes.dll”。构建成功。

我应该检查什么?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-09 23:19:18

打开.csproj文件(或.vbproj文件),然后查找程序集参考。然后,确保提示路径在构建服务器中仍然有效。有时,VS2010会添加绝对提示路径,而不是使用相对于.csproj文件本身的绝对提示路径,因此驱动器号在另一台计算机上可能无效。

例如,引用可能类似于下面的引用(我组成了下面所有的XML,只是为了说明,它是无效的),并且绝对提示路径在构建服务器中可能是无效的(例如,那里没有驱动器号d):

代码语言:javascript
复制
<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文件,因此更具一般性。例如:

代码语言:javascript
复制
  <HintPath>..\libs\SmartAssembly.Attributes.dll<HintPath>

另一个问题可能是<Private>true<Private>不在那里。此属性映射到Visual Studio中的CopyLocal属性,因此如果.csproj中缺少该属性,则MSBuild不会将其复制到bin\Debugbin\Release。请参阅http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9636311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档