【问题标题】:Add a custom target to .csproj file将自定义目标添加到 .csproj 文件
【发布时间】:2018-02-06 16:43:57
【问题描述】:

我想在我的 .csproj 文件中添加一个自定义目标。

自定义目标将是:

msbuild /t:assembleDebug

这个目标只会在调试模式下构建。

我已经尝试修改.csproj文件但没有成功。

感谢您的回答。

【问题讨论】:

  • 也许显示您尝试过的内容?否则,这是一个相当广泛的问题。

标签: visual-studio msbuild csproj


【解决方案1】:

这个目标只会在调试模式下构建。我已经尝试修改 .csproj 文件但没有成功。

要完成此操作,请卸载您的项目。然后在项目的最后,就在结束标记 </Project> 之前,放置以下脚本:

  <Target Name="assembleDebug" Condition=" '$(Configuration)' == 'Debug' ">

    <Message Text="This custom target will only be executed when configuration is debug" Importance="high"></Message>
  </Target>

'$(Configuration)' == 'Debug'条件下,在配置为Debug时执行目标:

当您使用 Release 模式构建它时,此自定义目标将不会执行:

msbuild "CustomTarget.csproj" /p:Configuration=Release /t:build;assembleDebug

评论更新:

我可以直接调用:msbuild /t:assembleDebug 并且这个目标会执行 与 msbuild /p:Configuration=Debug

相同

/p:Configuration=Release 用于覆盖 Visual Studio 上的默认配置,如果您只想调用:msbuild /t:assembleDebug 并且此目标将执行与 msbuild /p:Configuration=Debug 相同的操作,则应设置默认值配置到 Debug,然后使用命令 msbuild /t:assembleDebug:

构建它

然后使用该命令行构建它:

希望这会有所帮助。

【讨论】:

  • 谢谢你,里奥。但是,如果我只想调用我的目标 assembleDebug 而不指定配置?
  • 我可以打电话给:msbuild /t:assembleDebug,这个目标会和msbuild /p:Configuration=Debug做同样的事情
  • @leyh,当然可以。详情请查看我更新的答案。
  • @leyh,它不应该真正构建,它只是执行了自定义目标,所以你应该使用命令行msbuild Epicture.csproj /t:build;assembleDebug。你不想使用这个命令:msbuild Epicture.csproj /t:build;assembleDebug?如果是,您只需使该自定义目标依赖于默认目标构建:&lt;Target Name="assembleDebug" Condition=" '$(Configuration)' == 'Debug' " DependsOnTargets="Build"&gt;
  • 谢谢你!这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2011-09-13
  • 2021-07-18
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
相关资源
最近更新 更多