VS2010如何在项目中包含文件,在构建或发布期间自动复制它们以构建输出目录

时间:2011-01-04 17:24:44

标签: visual-studio msbuild project

任务是形成Visual Studio 2010项目,因此,在任何构建或发布期间,应将某些foo.exe实用程序复制到输出(bin)目录。

早期我在.csproj(MSBuild文件)中创建了PostBuildEvent任务:

<PropertyGroup>
  <PostBuildEvent>
    Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
  </PostBuildEvent>
</PropertyGroup>

但这不是普遍的。在发布期间(Visual Studio 2010)foo.exe出现在bin目录中,但不会复制到输出发布目录。也许我做的一切都完全错了,有一种标准机制可以将项目中的文件包含在以后,在构建或发布期间,复制到bin

7 个答案:

答案 0 :(得分:99)

存在并且它不依赖于构建后事件。

将文件添加到项目中,然后在文件属性中选择“复制到输出目录”,“始终复制”或“如果更新则复制”。

请参阅MSDN

答案 1 :(得分:18)

我只需要在构建期间推送文件,所以我只是添加了一个Post-build Event Command Line条目:

Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"

您可以通过右键单击解决方案资源管理器中的项目,然后单击属性&gt;来设置此项。建立活动

答案 2 :(得分:4)

在解决方案资源管理器中,请选择要复制到输出目录的文件并分配两个属性: - 构建行动=内容 - 复制到输出目录=始终复制

这样就可以了。

答案 3 :(得分:3)

  1. 将文件添加到项目中。
  2. 转到该文件的属性。
  3. 设置&#34;构建动作&#34;嵌入式资源。
  4. 设置&#34;复制到输出目录&#34;永远复制。

答案 4 :(得分:0)

在我的情况下,将Copy to Output Directory设置为Copy Always和Build并没有成功,而Rebuild就是这样。

希望这有助于某人!

答案 5 :(得分:0)

尝试直接从服务/网络项目中添加对缺少的dll的引用。添加对不同项目的引用对我不起作用。

我在发布我的网络应用时只需这样做,因为它没有复制所有必需的dll。

答案 6 :(得分:0)

正因为我的同伴神经受损的同志可能会在这里冒险,我假设,对于网络项目,如果链接文件是外部.config文件,那么&#34;输出目录&#34;将是web.config所在的目录,即您的Web项目的根目录。回想起来,将链接文件复制到root / bin文件夹完全不足为奇。

因此,如果它是appSettings包含文件,那么您的web.config的开放标记将是

<appSettings file=".\bin\includedAppSettingsFile.config">

咄。

相关问题