Visual Studioをインストールせずに.NETプロジェクトをコンパイルするにはどうすればよいですか?


36

.NET / C#プロジェクトをコンパイルしたいのですが、これを行うためにVisual Studioをインストールしたくありません。

どのツールが必要ですか、またどのようにプロジェクトをコンパイルできますか?


Visual Studio Expressは役に立ちませんか?
svick

1
@svick:プロジェクトをコンパイルするために必要な場合は、それを使用します。ただし、この場合は必要ないため、プロジェクトを展開するすべてのマシンにインストールする必要はありません。VCSからコピーを取得し、コンパイルして実行するだけです。VS Expressをインストールすると、プロセス全体が複雑になります。
デアホッホステープラー

その場合、より単純なソリューションは、コンパイル済みアセンブリを展開することです。そうすれば、すべてのマシンでコンパイルを行う必要はありません。
svick

@svick:あなたの洞察力に感謝しますが、バイナリを展開することも簡単に思いつきました。この場合に有益な代替案と考えていたら、それをやっていただろう。とはいえ、この質問と回答は、プロセスを簡単に説明するために投稿されたものです。このプロセスがユーザーの場合に進むべき方法であるかどうかを判断することは、ユーザーに決定されます。
デアホッホステープラー

回答:


37
  1. 最新の.NET Frameworkをダウンロードしてインストールします。
    たとえば、.NET Framework 4.5インストーラーのインストーラーを使用できます。

  2. コマンドプロンプトを開き、.NET Frameworkのインストールディレクトリに移動します。
    例えば:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. MSBuild.exeソリューションのコンパイルに使用します。
    例えば:

    msbuild "C:\Users\Oliver\Documents\My Project\My Project.sln" /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU"

プロジェクトでNuGetパッケージを使用する場合、次の手順に従ってそれらを取得できます。

  1. NuGet.exeコマンドラインブーストラッパーをダウンロードし、たとえば、ソリューションディレクトリ内に配置します。

  2. コマンドプロンプトを開き、ソリューションディレクトリに移動します。
    例えば:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. NuGet.exeこのソリューションに必要なパッケージを更新するために呼び出します。

    NuGet.exe install "My Project/packages.config" -o packages/
    

いいね!MSBuildドキュメントへのリンクはありますか?また、これは既に持っているVSプロジェクト用ですよね?.CSまたは他のソースファイルでコードをコンパイルするのはどうですか?
カラン

2
@Karan-この記事に基づいて答えを出したい人は誰でもmsdn.microsoft.com/en-us/library/vstudio/78f4aasd.aspx
ラムハウンド

@Ramhound:知識のある人なら、このすべてを単一のFAQタイプの回答に組み込むこともできると思います。また、対処できるいくつかのフォローアップの質問。csc.exeもエンドユーザーの.NET Frameworkインストールにバンドルされていますか?クライアントプロファイルのみをインストールする場合は含まれていますか?
カラン

1
@Karan:MSBuild.exeコマンドライン引数のドキュメントへのリンクを追加しました。はい、これは既にローカルマシン上にあるプロジェクト用です(GitHubからダウンロードされる場合があります)。Ramhoundが言及しているcsc.exeように、単一のファイルをコンパイルするための頼れるツールになるでしょう。csc.exe.NET Frameworkにもバンドルされています。これはコアC#コンパイラであり、MSBuildはおそらくそれを呼び出すだけです。クライアントプロファイルについてはわかりませんが、クライアントプロファイルに含まれていると思います。
デアホッホシュプラー

1
csc.exe含める必要がある1つの理由は、クライアントプロファイルにXmlSerializerクラスが含まれているためです。このクラスはcsc.exe、実行時に(を使用して)シリアル化アセンブリを生成します。
heavyd

3

Visual Studioのインストールを避けたい場合は、クロスプラットフォームでオープンソースの.NETランタイムおよび開発フレームワークであるMonoを試してみてください。Monoは、公開されているC#のECMA標準に基づいており、プリコンパイルされたC#アプリケーションと直接互換性があります。

Monoには、MSBuildを完全に置き換えることができるXBuildというツールも含まれています。MSBuildからXBuildへのプロジェクトの移植については、Monoプロジェクトのこの記事をご覧ください。WikiからのXBuildの1行の説明:

xbuildはmsbuildのMonoの実装であり、msbuildファイルを持つプロジェクトをLinuxでネイティブにコンパイルできます。

Linuxに加えて、WindowsおよびMac OS Xもサポートされていることに注意してください。


1
monoWindowsで使用する理由はありますか?
リシャフ

2
@Rishav政治的考慮事項?おそらく、Windowsを使用する必要があるが、できるだけ他のMicrosoftテクノロジーを使用したくないという人向けです。ただ推測するだけです。
ジェイミー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.