Visual studio Visual Studio/msbuild:set";内容“;输出目录

Visual studio Visual Studio/msbuild:set";内容“;输出目录,visual-studio,msbuild,visual-studio-2012,Visual Studio,Msbuild,Visual Studio 2012,我正在努力实现markerikson在这里的目标: 问题是,这里的答案(使用xcopy)是一个黑客。如果我使用内容(在我的例子中是、.dll和其他数据)添加对项目的引用,则该内容仍然显示在子文件夹下 如何设置Build Action->Content并为其中包含的文件设置路径?以这样一种方式传播:如果我添加对包含项目的引用,文件是否位于引用项目输出的“正确”子文件夹中?内容包括非托管代码,必须在搜索路径中,即在bin文件夹中,子文件夹将不起作用 有很多内容文件,把它们和我的代码放在同一水平似乎是

我正在努力实现markerikson在这里的目标:

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

如何设置Build Action->Content并为其中包含的文件设置路径?以这样一种方式传播:如果我添加对包含项目的引用,文件是否位于引用项目输出的“正确”子文件夹中?内容包括非托管代码,必须在搜索路径中,即在bin文件夹中,子文件夹将不起作用

有很多内容文件,把它们和我的代码放在同一水平似乎是垃圾。目前我的代码在子文件夹中,但它不正确。

编辑.csproj(如果您有 安装)并将文件生成操作更改为
ReferenceComWrappersToCopyLocal
。重建

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

某些复制目标定义
DestinationFolder=“$(OutDir)”
(复制到不带文件夹的输出)和一些define
DestinationFiles=“@(n->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)”
(保留文件夹结构)


您可以看到,CopyLocal=true的项目会被复制到
\u copyOutOfDateSourceItemsOutputDirectory始终
的DestinationFiles
,同时保留文件夹结构。

我会尝试一下,谢谢-但谷歌搜索没有给出太多解释-您能详细说明原因吗?不要盲目地遵循说明:)MSBuild对要复制到输出的所有类型的文件都有内部计算。“内容”项目组恰好是决定递归复制的项目组之一。这解释了为什么它会递归复制,但没有解释为什么这里应该使用明确用于COM包装器的东西?很抱歉这么迂腐,但这显然是一种恶作剧,所以值得解释一下吗?