【问题标题】:Adding empty platform configuration to MSBuild向 MSBuild 添加空平台配置
【发布时间】:2013-10-16 22:47:10
【问题描述】:

作为测试过程的一部分,我正在尝试为 MVS 2010 创建一个空的 MSBuild 平台目标,其唯一工作是在单击“构建”时调用批处理文件。我想完全忽略 c++ 文件的构建和链接过程,只需调用一个批处理文件(可能与构建后事件有关?)。

到目前为止,我已经在 \MSBuild\Microsoft.Cpp\v4.0\Platforms 复制了 Win32 平台并将其命名为“TestPlatform”,并开始对其进行破解并设法禁用构建步骤,但它,相当合理地,在链接步骤中找不到构建文件未生成的我的 SampleProject.o 文件时失败。

我已经订购了 Hashimi 和 Bartholomew 所著的“Inside the Microsoft Build Engine:使用 MSBuild 和 Team Foundation Build”一书,但是当它到达这里时,如果有人对这个主题有任何智慧的话,我将不胜感激。具体来说:

1 - 如何绕过链接步骤。

2 - 如何添加自定义步骤来调用 DoSomething.bat 文件

感谢您的帮助:)

【问题讨论】:

    标签: c++ visual-studio-2010 msbuild


    【解决方案1】:

    对于我的特殊情况,我发现添加 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32 平台 (C:\Program Files (x86)\MSBuild \Microsoft.Cpp\v4.0\Platforms\TestPlatform) 并将 TestPlatform 添加到我的项目配置中足以在 Configuration Manager 下拉菜单中显示 TestPlatform 选项卡。

    要使其不编译或链接任何内容但仍运行构建后事件,最简单的方法是在项目属性中选择: 配置属性/常规/配置类型:实用程序 这似乎绕过了所有构建步骤,但确实调用了构建后事件,我只是在其中调用了一个批处理文件。

    【讨论】:

      【解决方案2】:

      这并不完全符合您的建议,但可以在此处找到实现某些相同结果的不同方法:run a custom msbuild target from VisualStudio

      这显示了如何在 IDE 中连接命令以调用项目中的自定义目标。因此,您可以连接一个 IDE 命令来调用当前项目中的 RunThisBatchFile 目标。

      或者,您可以使用以下条件覆盖恶意目标:

      <Target Name="Link" Condition="'$(Platform)' == 'TestPlatform'">
         ...
      

      您可能需要找到其中的一堆,但我不确定是否 100% 可以绕过可能为 C++ 项目文件定义的 InitialTargets。

      这一切都被“MSBuild Trickery”所覆盖

      【讨论】:

      • 感谢您提供的信息。我为我的特殊情况找到了一种解决方法,但您的意见帮助很大。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      相关资源
      最近更新 更多