【问题标题】:What name do you give the MSBuild project build file?你给 MSBuild 项目构建文件起什么名字?
【发布时间】:2010-09-12 04:44:32
【问题描述】:

我正在尝试学习如何使用 MSBuild,以便我们可以使用它来构建我们的项目。文档中似乎有一个非常大的漏洞,我在任何地方都发现了这个漏洞,这个漏洞是你如何命名或以其他方式指定 MSBuild 项目文件?

例如,可以从 Microsoft 下载的有关 MSBuild 的教程详细介绍了构建文件的内容。例如,这里有一些他们的 Hello World 项目文件。

<Project MSBuildVersion = "1.0" DefaultTargets = "Compile">
   <Property appname = "HelloWorldCS"/>
   <Item Type = "CSFile" Include = "consolehwcs1.cs"/>
   <Target Name = "Compile">
      <Task Name = "CSC" Sources = "@(CSFile)">
         <OutputItem  TaskParameter = "OutputAssembly" Type = "EXEFile" Include = "$(appname).exe"/>
      </Task>
      <Message Text="The output file is @(EXEFile)"/>
   </Target>
</Project>

它继续等等等等等等等等等等任务,这就是你如何做到这一点,这就是你如何做到这一点。没用,完全没用。因为他们从来不说这个 xml 文件应该如何被 MSBuild 应用程序识别。它应该以特定方式命名吗?它应该放在特定目录中吗?两个都?两者都不?

这不仅仅是他们没有讲述的 MS 教程。我在 MSDN 或任何我可以从 Groups.Google 中提取的链接上都找不到它。

这里有人知道吗?我当然希望如此。

编辑添加:我弄错了 教程中包含的 .proj 文件 成为 .csproj 文件,这就是 一个喂给了 MSBuild,但在我看到这个之前它得到了下面的答案。 这应该是相当明显的,但我错过了。

【问题讨论】:

标签: msbuild


【解决方案1】:

您可以根据需要命名文件。来自 MSBuild 的帮助

msbuild.exe /?

Microsoft (R) Build Engine Version 2.0.50727.3053
[Microsoft .NET Framework, Version 2.0.50727.3053]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

Syntax:              MSBuild.exe [options] [project file]

因此,如果您将文件保存为 mybuildfile.xml,您将使用以下语法:

msbuild.exe mybuildfile.xml

【讨论】:

    【解决方案2】:

    如果您遵循以下策略,则不必指定构建文件:

    今天,当您调用 msbuild.exe 从命令行,不要 将任何项目文件指定为 参数,然后我们做一些自动 推断和扫描并决定我们是否 应该建造任何东西。如果我们发现 要么是一个 msbuild 项目(任何 扩展名为 *proj) 或 解决方案文件(.sln),我们将构建 项目或解决方案 只要只有一种解决方案或 目录中的一个项目。如果有 是一个解决方案和一个项目,我们将 优先考虑解决方案。如果 有多个项目或多个 不止一种解决方案,我们会发出错误 消息,因为我们无法决定哪个 一个来构建。

    这取自New Feature Feedback Request: /IgnoreProjectExtensions - A new command-line switch

    我总是将我手动编写的脚本命名为 build.proj

    【讨论】:

      【解决方案3】:

      不是直接的答案,而是相关的;如果您使用 .msproj 作为扩展,Visual Studio 会为您提供智能感知。

      【讨论】:

      • 我将构建文件重命名为 .msproj 扩展名,但 Visual Studio 2010 无法识别它。 #失败
      【解决方案4】:

      或者像我这样的真正懒惰的人。

      msbuild.exe project-file-name.vcproj /t:Rebuild /p:Configuration=Release
      

      【讨论】:

        【解决方案5】:

        Visual Studio 2012 将 .msbuildproj 识别为扩展,并将其视为解决方案资源管理器中的“项目”。

        【讨论】:

          猜你喜欢
          • 2011-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多