[C#] csc.exeでのコンパイル時の著作権表示やロゴを消す

[C#] csc.exeでのコンパイル時の著作権表示やロゴを消す

csc.exe を使ったコンパイル時の著作権表示やロゴを表示しない方法

結論

先に結論から言うと、オプションで /nologo を指定することで表示させないことが可能です。

csc.exe

C#のコードは、Visual Studio からではなく、直接 csc.exe を使ってコンパイルすることができます。このコンパイラ(csc.exe)は環境にも寄りますが、おそらく以下の場所にあるはずです。

C:\Windows\Microsoft.NET\Framework\v4.0.30319

このコンパイラを使うと次のような著作権やロゴの表示があり、コンパイルが実行されます。

c:\work> csc.exe hello.cs
Microsoft (R) Visual C# Compiler version 4.6.1038.0

for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

実用上これで問題ないといえばないのですが、マイクロソフトの企業ロゴや著作権表示が邪魔です。

特に今回VSCodeでC#の実行環境を構築しようとしているのですが、出力欄に関係のない著作権表示が毎回出てきてしまうのはかなり不便です。なのでこいつを表示させない方法を調べました。

csc.exe のオプション

csc.exeを実行するときにオプションで /nologoを指定してやると、ロゴその他諸々が表示されなくなります。

c:\work> csc.exe hello.cs /nologo

VSCodeで確認

Before

オプション無し

After

/nologo 指定

これでかなり快適になりました。

VSCodeでC#を実行する方法

余談ですが、VSCodeでC#を実行する方法もここで紹介します。以前の記事でHaskellを実行する環境を構築しましたが、それをC#でも設定してやるだけですので、以下の記事を参考にしてください。

VSCode で Haskell の環境を構築する

実行用のバッチファイルをC#用に用意する必要があります。

@echo off

if "%~dpnx1" equ "" goto :eof

setlocal
set tempfile=%date:~4%%time::=%
set tempfile=%tempfile:/=%
set tempfile=%tempfile:.=%
set tempfile=%tempfile: =%

csc.exe /out:%tempfile%.exe "%~dpnx1" /nologo

%tempfile%.exe

del %tempfile%.exe

このバッチをRunnerで呼び出すように設定しておけば、実行可能になります。お試しください。

参考URL

C#カテゴリの最新記事