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