gpt4 book ai didi

build - 仅针对一个框架的 MSBuild 目标

转载 作者:行者123 更新时间:2023-12-05 03:03:48 30 4
gpt4 key购买 nike

我有一个带有多框架目标的项目- <TargetFrameworks>netstandard2.0;net471</TargetFrameworks> .

我想为 netframework 构建解决方案和 netstandard分别。

目前我使用这个 MSBuild 命令:

MSBuild MySln.sln /t:Build /p:Configuration=Release /p:Platform="Any CPU" /m /nr:False

我试着运行这个命令:

MSBuild CxAudit.sln /t:Build /p:Configuration=Release /p:Platform="Any CPU" /p:TargetFramework=netstandard2.0 /m /nr:False(使用/p:TargetFramework=netstandard2.0)

但它失败了,即使是第一个命令也通过并构建了 netstandard输出。

最佳答案

我建议设置自定义属性并对这些属性进行调节。这样,您就不会影响其他项目或引用:

<TargetFrameworks Condition="'$(BuildNetStdOnly)' == 'true'">netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="'$(BuildNetFxOnly)' == 'true'">net471</TargetFrameworks>
<TargetFrameworks Condition="'$(TargetFrameworks)' == ''">netstandard2.0;net471</TargetFrameworks>

这样你就可以使用

msbuild -p:BuildNetStdOnly=true -p:Configuration=Release -m -nr:false
msbuild -p:BuildNetFxOnly=true -p:Configuration=Release -m -nr:false

请注意,这只是设置复数版本,因为如果为两个目标框架恢复了项目,则需要将 TargetFramework 设置为内部构建的全局属性才能工作。如果要设置单数 TargetFramework,还需要为每次调用再次恢复,方法是将 -restore 参数也传递给 msbuild。

关于build - 仅针对一个框架的 MSBuild 目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53537011/

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