【发布时间】:2012-09-24 04:06:49
【问题描述】:
我尝试构建 .csproj 来引用解决方案中的一些项目。这些引用标有CopyLocal=False。这是期望的行为。
我使用 MSBuild 为 CI 构建它,所以我通过 /p:OutputPath="some output dir" 设置输出文件夹。我还设置了/p:SolutionDir="path to the solution" 以正确解析一些 NuGet 引用。
问题是:当我用输出目录的绝对路径(如d:\solution\build\buildgroupsubfolder)指定OutputPath 时,MSBuild 将每个依赖项复制到输出目录中,我不知道为什么会这样做。如果我使用相对路径(如..\..\..\..\..\build\buildgroupsubfolder)指定输出路径,则 MSBuild 会正确处理CopyLocal=false,并且不会复制对输出目录的引用。
我们的解决方案中有一些嵌套,项目分为组,因此我们希望将它们构建到子文件夹中。而且我希望能够指定相对于基本构建路径而不是项目本身路径的构建路径。
为什么MSBuild在指定绝对路径时忽略CopyLocal=false,而在指定相对路径时正确对待?
【问题讨论】:
标签: .net msbuild msbuild-4.0