2008-09-22 62 views
7

我想了解如何使用MSBuild,以便我们可以使用它来构建我们的项目。在文档中似乎有一个非常大的漏洞,并且我在任何地方都能找到这个洞,这个洞是如何命名或指定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,但它采取了下面的答案我看到这个之前。 它应该是相当明显的,但我错过了它。

+0

此问题的文件扩展名方面在社区wiki中解决[是否有MSBuild文件的标准文件扩展名?](http://stackoverflow.com/questions/2007689/is-there-a-standard-文件扩展名换的MSBuild-文件/ 2012217#2012217)。 – weir 2015-02-25 17:57:26

回答

5

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

或者懒人使用,像我一样。

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

您不必指定构建文件,如果你尊重以下策略:

今天,当你调用命令行msbuild.exe 不 指定任何项目文件为 的论点,然后我们做一些自动的 推断和扫描,并决定我们是否应该建立任何东西 。如果我们发现 无论是MSBuild项目(任何 具有*凸出的延伸)或 解决方案文件(的.sln),我们将建立 无论是项目或解决方案 只要有只有一个解决方案或 目录中的一个项目。如果有 是一个解决方案和一个项目,我们将 优先考虑解决方案。如果 比一个解决方案有多个项目或更多 ,我们发出一个错误 消息,因为我们无法决定构建哪个 。

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

我总是命名我的手写脚本build.proj

2

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

+0

我将我的构建文件重命名为.msproj扩展名,Visual Studio 2010无法识别它。 #失败 – 2012-02-14 19:21:42

0

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

相关问题