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 ファイルと間違えました。それはかなり明白なはずでしたが、私はそれを見逃しました。

4

5 に答える 5

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
于 2008-09-22T22:58:23.720 に答える
2

直接的な答えではありませんが、関連しています。拡張機能として使用する場合.msproj、VisualStudioはインテリセンスを提供します。

于 2011-08-12T12:18:55.733 に答える
2

次の戦略を尊重する場合は、ビルド ファイルを指定する必要はありません。

現在、コマンド ラインから msbuild.exe を呼び出し、引数としてプロジェクト ファイルを指定しないと、自動推論とスキャンが実行され、何かをビルドするかどうかが決定されます。msbuild プロジェクト (*proj の拡張子を持つもの) またはソリューション ファイル (.sln) のいずれかが見つかった場合、ディレクトリにソリューションまたはプロジェクトが 1 つしかない限り、プロジェクトまたはソリューションのいずれかをビルドします。解決策とプロジェクトがある場合は、解決策を優先します。複数のプロジェクトまたは複数のソリューションがある場合、ビルドするプロジェクトを決定できないため、エラー メッセージが発行されます。

これは、新機能のフィードバック リクエストから取得したものです: /IgnoreProjectExtensions - A new command-line switch

手動で作成したスクリプトには常にbuild.projという名前を付けています。

于 2008-10-30T10:33:18.407 に答える
0

Visual Studio 2012は.msbuildprojを拡張機能として認識し、ソリューションエクスプローラーで「プロジェクト」として扱います。

于 2013-03-08T21:33:53.587 に答える
0

または、私のような本当に怠惰な人のために。

msbuild.exe project-file-name.vcproj /t:Rebuild /p:Configuration=Release
于 2008-10-24T14:39:12.463 に答える