仕事柄、様々なお客さんの現場で作業することがありますが、
必ずしもいろいろな環境が整っているわけではありません。
仕事をしていると「あのソフト(ツール)があればこの仕事楽なのに・・・」と
わかっていても、お客さんのところのセキュリティ上、好き勝手にソフトは
使用することが大概できません。
ではどうするかというと、自分で作ってしまうのが一番早いということになります。
Windowsアプリをvisualstudioで、C#やVBなどを使って作成したことのある方は
多いと思いますが、ではvisualstudioがなければwindowsアプリは
作成できないのでしょうか?
実はそんなことはないんです。
csc.exeを探せ!
最近のwindowsPCであれば大概.NET Frameworkのいずれかのバージョンが
インストールされていると思います。
↓このようなフォルダがあるはず。
C:\Windows\Microsoft.NET
さらにその配下に↓のいずれかのフォルダがあると思います。
C:\Windows\Microsoft.NET\Framework
C:\Windows\Microsoft.NET\Framework64
その配下に↓のようなフォルダ(v以降はバージョン詳細)があると思います。
C:\Windows\Microsoft.NET\Framework\v~~
C:\Windows\Microsoft.NET\Framework64\v~~
僕の場合はこんな感じでした。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
このフォルダの中にcsc.exeというものがあると思います。
これがC#のコンパイルをしてくれるexeなんです!!
csc.exeを使用したコンパイル方法
コンパイル元となるcsファイル
コンパイル元となるcsファイルとして以下のような
Formを表示するだけの、Mainメソッドを持つクラスを用意しました。
using System; using System.Collections.Generic; using System.CodeDom; using System.CodeDom.Compiler; using System.Reflection; using System.Windows.Forms; using System.Drawing; using System.ComponentModel; using System.Runtime.InteropServices; public class SampleForm : Form { [STAThread] public static void Main() { GeneratedCodeAttribute generatedCodeAttribute = new GeneratedCodeAttribute( "Microsoft.VisualStudio.Editors.SettindsDesigner.SettingSingleFileGenerator", "10.0.0.0" ); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new SampleForm()); } public SampleForm() { Text = "SampleForm"; StartPosition = FormStartPosition.Manual; Location = new Point(77, 0); ClientSize = new Size(500, 150); } }
実際にアプリを作成する場合ですと、
visualstudioがない環境であれば、コードアシストなどができないので、
もう、これは何度もコンパイルかけて頑張るしかないですね!
csc.exeを実行するコマンド
batファイルなどでよいので、以下のようにコマンドを実行します。
cd [.NET Frameworkのパス(例:C:\Windows\Microsoft.NET\Framework64\v4.0.30319)] csc.exe /optimize+ /out:[出力させるexeファイルの絶対パス] /t:winexe [csファイルの格納パス]\*.cs
optimizeオプションは実行時のコード最適化の有無です。
デフォルでは無効になっているので、「optimize+」で有効にします。
tオプションはtargetオプションの省略形で、winexeを指定することで
exeファイルが作成されるようになります。
実行すると・・・
コンパイルに問題なければ、指定したexeファイルが作成されていて、
実行すると↓のようななにもないFormが表示されていると思います。
最後に
ここまでできればあとはボタンを追加したり、データベースの結果を
表示したり・・・夢が広がりますね。
コードアシストなしでプログラムを作成することは
なかなか骨の折れる作業かもしれませんが、
自分の現場での作業を助けてくれるツールを自分で
作成できれば、心強いかと思います。
ぜひ、みなさんも挑戦してみてください。
次回は、この方法で僕がつくった
簡易ランチャーのコードを記載しようと思います。
20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。
今風にいうとフルスタックエンジニアということになるのでしょうか??
→ 詳細プロフィールというか、生い立ちはこちら
→スキルシートをご覧になる場合はこちら
→お仕事のご依頼やお見積りなどお問い合わせはこちらから!