【问题标题】:Integrating MSBuild into Visual Studio将 MSBuild 集成到 Visual Studio
【发布时间】:2009-09-30 10:44:13
【问题描述】:

我是一名独立开发人员,运行 Visual Studio 2008,并正在研究 MSBuild 以改进我的构建过程。

到目前为止,我发现的几乎所有教程都包含大量有关编写构建文件的信息。但是,我在找出如何将 MSBuild 集成到 Visual Studio 中时遇到了很多麻烦。也许 MSBuild 只与 CruiseControl 之类的东西一起使用,但作为一个开发人员,这对我来说太过分了。

构建文件应位于 Visual Studio 项目中的什么位置,如何在 IDE 中运行它?

【问题讨论】:

    标签: visual-studio visual-studio-2008 msbuild


    【解决方案1】:

    Visual Studio 会为其支持的项目自动执行 MSBuild。

    如果您右键单击一个项目并卸载它,您就可以在 Visual Studio 中对其进行编辑。重新加载(再次右键单击项目),强制(重新)构建以测试您的更改。另一种方法是在外部编辑器中编辑项目文件,Visual Studio 将检测保存并提供为您重新加载项目。

    听起来您走在正确的轨道上,如果您正在考虑编写目标或自定义 MSBuild 任务,请花时间将它们与当前项目分开,以便您可以重复使用它们。不过不要重新发明轮子,两个主要的互补 MSBuild 项目是 MSBuild Community TasksMSBuild Extension Pack

    更新:从您对 Mitch 回答的评论来看,您可能还需要考虑向项目添加新的配置元素或自定义属性。一个新的 MSBuild 配置(不是默认的 Debug/Release)可以运行单元测试、构建文档或任何你想要自动化的东西。自定义 MSBuild 属性将允许您使用正常的调试/发布配置和extend it 来自动化更多的构建过程,这取决于您想要什么。也可以从command line 驱动这两种方法。

    【讨论】:

      【解决方案2】:

      正如其他人所指出的,MSBuild 在您安装 Visual Studio 时已经可用。

      如果你想集成到VS2008中:Running MSBuild from Visual Studio

      【讨论】:

      • 我想右键单击构建文件并选择“构建”。这是到达那里。
      【解决方案3】:

      MSBuild 是 Visual Studio 使用的构建引擎,用于处理项目中包含的文件。
      Visual Studio 项目文件本身(**.csproj* 用于 C#,例如,.vbproj for VB)实际上是每次构建项目时都会运行的 MSBuild 脚本。

      【讨论】:

        【解决方案4】:

        您的 .csproj 文件是一个 MSBuild 文件。所以你实际上已经在使用它了。

        您当然可能希望创建一个单独的构建文件以获得更多控制权,尤其是在持续集成或夜间构建中。

        如果您只是想编辑您的项目构建文件,那么您可以使用 IDE 编辑一些设置,例如构建前和构建后操作,或者通过卸载项目并右键单击和编辑来编辑 Xml 本身。

        【讨论】:

        • 如果我不使用 CI 或夜间构建,我是否会因为想要一个单独的构建文件而过火?构建有点复杂,仅此而已。
        • @Alex 你一点也不过分。最大的成本是学习曲线,听起来你已经在这条路上了,所以我想说用一个单独的构建文件来做学习投资是值得的。如果您有能力支付,请查看构建扩展,甚至寻找构建软件,因为它可能对您有所帮助。
        【解决方案5】:

        您可以使用当前的 .vcproj 文件通过 MSBuild 构建您的项目。但是,由于不直接支持 MSBuild(至少对于 vc++),而是使用 vcbuild(内部)。 在 VS2010 中,所有项目文件都是基于 MSBuild...

        【讨论】:

          【解决方案6】:

          这是一篇较早的文章,关于 msbuild 团队的一些简单扩展点

          How To: Insert Custom Process at Specific Points During Build

          【讨论】:

            【解决方案7】:

            另外,不要忘记您可以使用 MSBuild SideKick 来开发和调试您的(本地)msbuild,可通过http://www.attrice.info/msbuild/免费获取

            【讨论】:

              【解决方案8】:

              我建议您将 msbuild 称为构建后步骤。然后,您可以将构建脚本放在解决方案中的某个位置并调用它。

              <windowsdir>\Microsoft.NET\Framework\v3.5\MSBuild.exe c:\temp\MyProject\mybuildfile.proj
              

              【讨论】:

              • 呸。 BeforeBuild 或 AfterBuild 目标是更好的钩子。
              • @Si:在@Mike Two 提供的链接上,BeforeBuild 和 AfterBuild 目标应该是用于旧版支持吗? blogs.msdn.com/msbuild/archive/2005/11/23/496396.aspx
              • @Gerrie:那不是说我要建造两次吗?
              • BeforeBuild 和 AfterBuild 不适用于旧版支持,该帖子不正确。 (是的,我知道它在 MSBuild 博客本身,但相信我)。
              【解决方案9】:

              最简单的方法可能是使用构建后步骤调用您的自定义构建脚本。右键单击项目,选择“构建事件”并从那里使用您的自定义 msbuild 文件调用 msbuild。

              【讨论】:

              • 但是我不是在构建两次吗? (一次在 VS 中,一次在 MSBuild 中?)
              【解决方案10】:

              我使用 msbuild 模板与 Visual Studio 集成

              http://msbuildtemplate.codeplex.com/

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-11-19
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多