質問: ・やりたい事はクラスが書かれたソースと、エントリーポイントが書かれたソースが 個別であってもcmd上でビルドを完結させる事です。 (CやC++における、「 cl /c 」で.objファイルを作成 → 「 link 」 を使って実行ファイルを作成、のような方法があるのかどうかです。) ・同一ソースに書けばビルド自体はできる事は承知の上で、個別にソースがある状態での方法の有無を知りたいです。 調べたこと・試したこと ----------- ■クラスが書かれたソースを.dllにしてそれをDllImportを用いて読み込もうとしました。 ・ファイル名 エントリーポイントのあるソース : a.cs クラスを定義したソース : b.cs ・b.dllを生成 csc.exe -target:library b.cs ・a.csに下記コードを追記 ``` using System.Runtime.InteropServices; public partial class DllImport : System.Windows.Forms.Form { [DllImport("b.dll"] public static extern int add(int a, int b);//b.cs内で定義した関数名 } ``` ### 発生したエラー ``` a.cs(b.dll定義のクラスの変数を宣言した行): error CS0246: 型または名前空間名 'Calc' が見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足しています。 ``` 'Calc'はb.csで定義したクラスの名前です。 そもそもdllImportではWind32APIやC等で作成関数を呼びだす事は出来ても、 クラスは呼びだせないし、その為クラスのメンバ関数も呼び出せないという事でしょうか。 だとしたらやりたい事と方法が全くちぐはぐですね、すみません。 何か、C#の言語特性を全く理解してないようなちぐはぐな発想だったり、 既出だとか情報不足、或いは調査不足でしたらすみません。 VSを使えと言われたら最もなのですが、何卒よろしくお願い致します。
回答: MSBuildというコマンドがあります。 一度はVisualStudioを起動して、プロジェクトファイルを作成する必要はありますが。