我尝试构建引用解决方案中的某些项目的.csproj
。这些参考文件标有CopyLocal=False
。这是所需的行为。MSBuild在指定绝对路径时复制相关性,并在相对时忽略
我使用MSBuild构建CI,所以我通过/p:OutputPath="some output dir"
设置输出文件夹。我还设置了/p:SolutionDir="path to the solution"
正确解析一些NuGet引用。
问题是:当我指定输出路径与输出目录的绝对路径(如d:\solution\build\buildgroupsubfolder
),然后MSBuild将每个依赖项复制到输出目录,我不知道它为什么这样做。如果我使用相对路径指定输出路径(如..\..\..\..\..\build\buildgroupsubfolder
),则MSBuild将正确处理CopyLocal=false
,并且不会将引用复制到输出目录。
我们在我们的解决方案中嵌套了一些嵌套项目,项目分组,所以我们希望它们被构建到子文件夹中。我希望能够指定相对于基本构建路径的构建路径,而不是项目本身的路径。
为什么MSBuild在指定绝对路径时忽略CopyLocal = false,并在指定相对路径时正确处理它?
哇!鬼祟的错误!你有没有发布这在连接? –
不,我没有。我不认为他们会认为这是固定的。这并不重要。我们已经看到了多年来存在的更严重的错误。所以我不认为这个人甚至值得张贴到连接:) –
只需在我们的CI构建中打这一个。很烦人,浪费了数小时...... –