2011-03-02 6 views
9

'ノーログ' ビルドがログを指定した場所に書き込んだコマンドラインから.csprojを構築するにはどうすればよいですか?

"c:\Program Files\Microsoft Visual Studio 9.0\Common7\ide\VCSExpress" Project1.csproj /build

次が失敗したようなものでスムーズに動作するように思えますが:

このテキストを持つウィンドウを示す

"c:\Program Files\Microsoft Visual Studio 9.0\Common7\ide\VCSExpress" Project1.csproj /build /Log=log.txt

を:

Missing switch argument. Configuration name required for /build switch.

Use: vcsexpress [solutionfile | projectfile | anyfile.ext] [switches]

The first argument for vcsexpress is usually a solution file or project file. You can also use any other file as the first argument if you want to have the file open automatically in an editor. When you enter a project file, the IDE looks for an .sln file with the same base name as the project file in the parent directory for the project file. If no such .sln file exists, then the IDE looks for a single .sln file that references the project. If no such single .sln file exists, then the IDE creates an unsaved solution with a default .sln file name that has the same base name as the project file.

Command line builds: vcsexpress solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ] Available command line switches:

/Log Logs IDE activity to the specified file for troubleshooting. /ResetSettings Restores the IDE's default settings, optionally resets to the specified VSSettings file. /SafeMode Launches the IDE in safe mode loading minimal windows.

Product-specific switches:

To attach the debugger from the command line, use: VsJITDebugger.exe -p

[私はVisual Studio 2008 Expressを使用しています]

だから、質問は以下のとおりです。

  • ログファイルがどこかに書かれていることを確実にする方法はありますか?

  • GUIモードでIDEを実行している場合にのみ、/Logスイッチが使用されますか?もしそうなら、回避策がありますか?

+0

なぜMSBuildをビルドに使用していないのですか?「アクティブソリューション構成」を参照してください。 –

+0

@Fyodor Soikin実際にログを書いているだけで、おそらく十分です(私はtmeでちょっとした汚れたオートメーションをやっています)。 – mlvljr

+0

私はExpress製品に精通していませんが、他のツールを使ってログを作成する場合は、コンソール出力をファイルにリダイレクトするだけです。もちろん、これは、リダイレクトする出力があることを前提としています。 。 。 –

答えて

21

Visual Studioはすべてのビルドマジックにmsbuildを使用します。私の知る限り、これはExpressエディションにも当てはまります。

まだ持っていない場合、MSBuildは.NET SDKの一部です。

MSBuildを呼び出すことはビルドを直接行う利点があります.VCSExpressを呼び出すとオーバーヘッドが発生します。

は、ここで私が使用したのMSBuildコマンドラインです:

msbuild.exe <solution> 
    /t:rebuild 
    /verbosity:quiet 
    /logger:FileLogger,Microsoft.Build.Engine;logfile=<filePath> 

<project>の代わり<solution>と同じように動作するはずです。

+0

私は(3.5?)sdkを持っているので、MSBuildも持っているに違いないでしょうか? "C:\ program files"のクイック検索で何も表示されません - 別の名前またはsmthで何らかの形で隠されていますか?) – mlvljr

+2

%SystemRoot%\ Framework \ v3.5にあります –

+2

% SystemRoot%\ Microsoft.NET \ Framework \ v3.5'、多くのありがとう。 – mlvljr

3

あなたは/ビルドオプションの後に設定を指定する必要があります。また、ログファイルはすでに存在していなければなりません。最初から作成することはありません。したがって:

+0

(奇妙なことですが)これは私のマシンでは何もしません。プロジェクトを構築できない場合でも(参照されたdllが(意図的に)欠落している)、ログファイルは空です。しかし、「欠けているスイッチ引数」の反応のヒントにはとにかく感謝しています。私はより注意深く、彼はナンセンス(私のように)と言われているとは思わないでしょう。 – mlvljr

+0

ログファイルのオプションはかなり変わっています。私が試してもそれはあまりログに記録されません。これは、msbuildを頻繁に使用することはありません。 –

+0

最後のMSBuild(net 4フレームワークに付属しているもの)はnet 3.5コンパイラを使ってネット3.5プロジェクトを簡単にビルドすることができますか?btw? – mlvljr

2

すべての情報がポップアップウィンドウに表示されます。「スイッチの引数がありません。/ buildスイッチに必要な設定名」というエラーが表示されます。 "コマンドラインビルド:vcsexpress solutionfile.sln/build [solutionconfig]"

これは、どのようなソリューション設定を使用しているかを知りたいだけです。または "デバッグ"。 vcsexpressに「構成マネージャ」または「ビルド」メニューの下にあるソリューションビルドプロパティページがあるかどうかはわかりませんが、現在の設定を再度確認することができます。 MSBuild task configuration property

+0

ありがとうございました。 – mlvljr

関連する問題