LoginSignup
6
12

More than 5 years have passed since last update.

Visual Studioを使わずにコンパイルする方法(備忘録)

Posted at

概要

Qiitaの記事投稿練習も兼ねて、自分用の備忘録としてVisual Studioの無い(会社のセキュリティ云々でインストールできない)環境でも、今時のWindowsならテキストエディタでC#とかVBのソース書いてツール作れるよっていうメモ。

参考URL

C#:csc.exeだけで参照設定しながらコンパイルする方法

コンパイラの場所とか

C:\Windows\Microsoft.NET\Framework\v4.0.30319
の中にcsc.exe(C#用)とかvbc.exe(VB用)が入ってるはずなので、引数にソースファイルを指定すればコンパイルしてexe(実行ファイル)にしてくれる。
(v4.0.30319の部分は.NETのバージョンによって微妙に変わる)

以下はコンパイラにパスが通っている前提のコマンドなので、パスが通っていなければパスを通すか絶対パスで記述する。
exeファイルはコマンドを実行した場所に生成される。

参照設定しない場合

/platform:x86は環境に合わせて指定する。

csc /platform:x86 "ソースファイルのパス"

参照設定する場合

/referenceに参照するdll等を指定する。
;(セミコロン)で区切って複数指定できる。
また、Windowsアプリケーションの場合は/target:winexeを指定しないとコンソール(黒い画面)が表示されてしまう。

csc /reference:WPF\PresentationCore.dll;WPF\PresentationFramework.dll;WPF\WindowsBase.dll;System.Xaml.dll /platform:x86 /target:winexe "ソースファイルのパス"

おまけ

バッチファイルにしてしまうとドラッグ&ドロップでコンパイルできて楽(参照設定とかは適宜対応するとして・・・)。

compile.bat
@echo off
cd %~dp0

rem 引数無し実行はエラーとする
if "%~1"=="" (
  echo ソースファイルをドラッグ&ドロップしてください
  timeout 5
  exit
)

echo コンパイルを実行します
echo;
csc /platform:x86 /target:winexe %1
echo;
timeout 5

一応補足しておくと、
cd %~dp0でバッチファイルの階層に移動する。
%1には実行時引数(ドラッグ&ドロップしたファイルの絶対パス)が入っている。
choiceコマンドと%errorlevel%でコンソールアプリかWindowsアプリか分岐させる、とかも出来るけど今回は割愛。

あとがき

初めての記事投稿で見よう見まねでやってみたけど、簡単に書けて結構楽しい(小並感)。
基本的には備忘録がメインになるから大したことないかもしれないけど、誰かの参考になればいいなぁ、と思ってちょくちょく投稿してみる。

6
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
12