我有一个具有多框架目标的项目-<TargetFrameworks>netstandard2.0;net471</TargetFrameworks>
.
我想构建解决方案netframework
and 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
(with /p:TargetFramework=netstandard2.0)
但它失败了,即使是第一个命令传递并构建netstandard
output.
我建议设置自定义属性并对这些属性进行调节。这样,您就不会影响其他项目或参考:
<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 的争论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)