gpt4 book ai didi

visual-studio - MSBuild + Visual Studio : Customize default "Copy Local" for all projects in the solution

转载 作者:行者123 更新时间:2023-12-04 06:17:48 24 4
gpt4 key购买 nike

我对 MSBuild 知之甚少。

最近我读到对于大型解决方案将“本地复制”设置为 false 可以显着减少编译时间。
我找到了一种将默认设置设置为 false 的方法,方法是在 MSBuild 扩展路径中设置一个名为 CustomAfterMicrosoftCommon.targets 的机器范围文件。

这很有效,但是,这种方法存在一些问题。

- 此默认值设置是系统范围的,我希望它仅适用于特定解决方案。我不在项目级别,因为我在几个不同的解决方案中有很多。

-我希望将此默认值应用于“非输出项目”。我的意思是类库项目不应该将本地复制设置为true。但是,主应用程序项目需要将类库依赖项复制为 true,因为它需要运行。
理想情况下,对于那些输出项目,我想回退到更智能的开箱即用默认值,该默认值足够聪明,可以确定引用是否应该是私有(private)的。我想我可以将默认的 Copy Local 设为 false,然后在需要的地方明确地将 Copy Local 设置为 true。鉴于您通常没有很多输出项目,这还不错,但我想看看是否有人提出了更好的解决方案。

有任何想法吗 ?

最佳答案

msbuild 找到这样的目标扩展%MSBuildExtensionsPath%\v4.0\CustomAfterMicrosoftCommon.targets
因此,解决您的第一个问题的一种方法是以某种方式仅设置 MSBuildExtensionsPath对于要应用自己的默认值的解决方案。

我以另一种方式解决了第二个问题。我保留了copylocal=false也在“主要应用项目”上。相反,我将另一个项目的输出路径添加到 DEVPATH 环境变量中。
SET DEVPATH=C:\Proj1\Output;C:\Proj2\Output
(并按照指定的 here 对 machine.config 进行必要的更改)

编辑:

Here is nice page about how to make settings with project or solution scope

关于visual-studio - MSBuild + Visual Studio : Customize default "Copy Local" for all projects in the solution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6248697/

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