gpt4 book ai didi

MSBuild:从命令行指定目标

转载 作者:行者123 更新时间:2023-12-03 11:01:18 25 4
gpt4 key购买 nike

我有一个 MSBuild 任务来在解决方案文件中构建一个特定的项目。它看起来像这样:

<Target Name="Baz">
<MSBuild Projects="Foo.sln" Targets="bar:$(BuildCmd)" />
</Target>

从命令行,我可以设置我的 BuildCmdRebuildClean它按预期工作:

msbuild /target:Baz /property:BuildCmd=Rebuild MyMsbuildFile.xml msbuild /target:Baz /property:BuildCmd=Clean MyMsbuildFile.xml



但是我用什么词来设置 BuildCmd为了只是建立?我试过 BuildCompile并将其留空或未定义,但我总是收到错误消息。

msbuild /target:Baz /property:BuildCmd=Build MyMsbuildFile.xml Foo.sln : error MSB4057: The target "bar:Build" does not exist in the project.

msbuild /target:Baz /property:BuildCmd=Compile MyMsbuildFile.xml Foo.sln : error MSB4057: The target "bar:Compile" does not exist in the project.

msbuild /target:Baz MyMsbuildFile.xml Foo.sln : error MSB4057: The target "bar:" does not exist in the project.

最佳答案

我了解到您想使用特定命令构建目标:Build、Clean 等。

这就是我要做的。

创建一个属性来接收你的构建命令,当未指定时默认为 Build

<PropertyGroup>
<BuildCmd Condition=" '$(BuildCmd)' == ''">Build</BuildCmd>
</PropertyGroup>

之后,创建将使用参数中指定的目标启动 MSBuild 的目标:
<Target Name="Stackoverflow">
<MsBuild Projects="Foo.sln" Targets="$(BuildCmd)" />
</Target>

然后使用 target 和 BuildCmd 参数调用您的 MSBuild 文件,如下所示:
msbuild msbuild.xml /t:Stackoverflow /p:BuildCmd=Clean

只需确保目标存在于解决方案或项目文件中。

关于MSBuild:从命令行指定目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/232052/

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