gpt4 book ai didi

.net - MSBuild 在指定绝对路径时复制依赖项,在相对路径时忽略

转载 作者:行者123 更新时间:2023-12-01 01:15:02 24 4
gpt4 key购买 nike

我尝试构建 .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 并在指定相对路径时正确处理它?

最佳答案

嗯,我已经深入挖掘了。我发现 MSBuild 行为不端,但不是我想过的地方。

我认为 MSBuild 有我在问题中描述的错误行为。真的处理了CopyLocal=false如果我设置 OutputDir到相对路径。如果我设置 OutputDir,它就会行为不端到绝对路径。我在 MSDN 中找到了答案:

OutputPath - Specifies the path to the output directory, relative to the project directory, for example, "bin\Debug".



所以实际上,当我设置 OutputPath 时,MSBuild 应该警告我甚至失败。到绝对路径,但事实并非如此。这就是为什么我的印象是绝对路径是可以的,而且 CopyLocal 有一个错误。处理。实际的错误是 MSBuild 在它应该失败时工作。

关于.net - MSBuild 在指定绝对路径时复制依赖项,在相对路径时忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com