Visual Studio / msbuild:设置“内容”输出目录

时间:2012-11-26 19:22:31

标签: visual-studio msbuild visual-studio-2012

我正在努力实现这里的标记:Visual Studio - sending "content" files to the output directory instead of a subdirectory?

问题是,那里的答案(使用xcopy)是一个黑客。如果我使用内容(在我的情况下,.dlls和其他数据)添加对项目的引用,则内容仍显示在子文件夹下。

如何设置构建操作 - >内容并为其中包含的文件设置路径?传播的方式是,如果我添加对包含项目的引用,那么文件位于引用项目输出中的“正确”子文件夹中?内容包括必须在搜索路径中的非托管代码,即在bin文件夹中,子文件夹将不起作用。

有许多内容文件,并将它们与我的代码放在一起似乎很糟糕。我现在在子文件夹中有我的代码,但它不对..

1 个答案:

答案 0 :(得分:1)

编辑.csproj(编辑项目文件,如果您有Productivity Power Tools  已安装)并将文件构建操作更改为ReferenceComWrappersToCopyLocal。重建。

最终,所有IO操作都归结为%FrameworkDir%\v4.0.30319\Microsoft.Common.targets

中定义的目标

某些复制目标定义 DestinationFolder="$(OutDir)"(复制到没有文件夹的输出)和一些定义DestinationFiles="@(n->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')"(保持文件夹结构)。

您可以看到具有CopyLocal = true的项目会在_CopyOutOfDateSourceItemsToOutputDirectoryAlways中使用DestinationFiles进行复制,同时保留文件夹结构。