Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您为MSBuild项目生成文件指定了什么名称?_Msbuild - Fatal编程技术网

您为MSBuild项目生成文件指定了什么名称?

您为MSBuild项目生成文件指定了什么名称?,msbuild,Msbuild,我正在尝试学习如何使用MSBuild,以便我们可以使用它来构建我们的项目。文档中似乎有一个很大的漏洞,我到处都能找到这个漏洞,这个漏洞就是如何命名或以其他方式指定MSBuild项目文件 例如,可以从Microsoft下载的有关MSBuild的教程详细介绍了生成文件的内容。例如,下面是他们的Hello World项目文件的一小部分 <Project MSBuildVersion = "1.0" DefaultTargets = "Compile"> <Property ap

我正在尝试学习如何使用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>

这是一个空谈,空谈,空谈的项目,空谈,空谈的任务,这是你如何做的,这是你如何做的。没用,完全没用。因为他们从来没有谈到MSBuild应用程序应该如何识别这个xml文件。它应该以特定的方式命名吗?它应该放在一个特定的目录中吗?二者都都没有

这不仅仅是微软的教程,他们没有告诉它。我还没能在MSDN上找到它,也没能在我能从群组中找到的任何链接上找到它。谷歌也没有

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

编辑后添加:我弄错了 教程中包含的.proj文件 成为.csproj文件,这就是 一个反馈给MSBuild,但在我看到这一点之前,它接受了下面的答案。 这本应该很明显,但我错过了


您可以根据自己的需要命名该文件。从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

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

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

如果遵循以下策略,则不必指定生成文件:

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

这是从一本书中摘取的


我总是把我手工编写的脚本命名为build.proj。

不是直接的答案,而是相关的;如果使用
.msproj
作为扩展名,Visual Studio将为您提供intellisense。

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

我将生成文件重命名为.msproj扩展名,Visual Studio 2010无法识别它#Fail社区wiki中介绍了此问题的文件扩展名方面。