2008-09-22 82 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識別爲擴展名,並將其視爲解決方案資源管理器中的「項目」。

相關問題