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

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

早期我在.csproj(MSBuild-file)中做了PostBuildEvent任务:

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

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

有,它不依赖于发布后的事件。

将文件添加到项目中,然后在文件属性中的“复制到输出目录”下,select“始终复制”或“如果新build复制”。

请参阅MSDN 。

我只需要在构build过程中推送文件,所以我只是添加了一个Post-build事件命令行条目,如下所示:

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

您可以通过在解决scheme资源pipe理器中右键单击项目,然后单击属性>构build事件来设置此项

在解决scheme资源pipe理器中,请select要复制到输出目录的文件并分配两个属性: – 生成操作=内容 – 复制到输出目录=复制始终

这将做的伎俩。

  1. 将该文件添加到您的项目。
  2. 转到该文件的属性。
  3. 将“构build行动”设置为embedded式资源。
  4. 将“复制到输出目录”设置为始终复制。

在我的情况下,设置Copy to Output Directory Copy Always和生成没有把戏,而重build。

希望这可以帮助别人!

尝试从您的服务/ Web项目中直接添加对缺失DLL的引用。 添加引用到一个不同的项目不适合我。

我只需要在发布我的web应用程序时这样做,因为它不是复制所有需要的dll。

就这样,我的神经损伤同志可能会在这里,我曾经假设,对于web项目,如果链接的文件是一个外部.config文件,“输出目录”将是web.config所在的目录,即您的Web项目的根。 回想起来,它将链接文件复制到root / bin文件夹是完全不奇怪的。

所以,如果它是一个appSettings包含文件,你的web.config的开放标签将是

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

咄。