
IDEをつかわず、コマンドプロンプト上でC#のソースをビルドする時の方法について質問です。
まず以下のようなコードがあるとします。
まずC:\の直下に以下のソースを作成しました。
===================================================
using System;
using System.IO;
using System.Windows.Forms;
namespace Add.TestClass{
public class LibraryClass{
public LibraryClass(){
MessageBox.Show("クラスライブラリコンストラクタの実行");
}
}
}
===================================================
上記クラスをdllファイルとしてビルドします。
csc /t:library /out:Add.TestClass library.class
と上記のようにビルドしました。するとAdd.TestClass.dllというファイルが確かにできあがりました。
次にこれを実際に実行するためのファイルをつくりました。
それが以下になります。
同じくC:\直下に以下のようなソースを作成します。
===================================================
using System;
using System.IO;
using System.Windows.Forms;
using Add.TestClass;
public class MainClass{
public static void Main(String [] args){
LibraryClass obj = new LibraryClass();
}
}
===================================================
このファイルをビルドします。
csc /r:Add.TestClass.dll main.cs
としてビルドし、その後 mainというファイルを実行しました。
するとキチンとMessageBoxで MessageBox.Show("クラスライブラリコンストラクタの実行");が実行されました。
ここまでは問題ないのですが、この場合 main.exeファイルとAdd.TestClass.dllというファイルが
同じ階層に存在するような状態になっているのですが、これを main.exeファイルのある階層にdllというディレクトリを作成し
そのdllの中にAdd.TestClass.dllというファイルをおいた階層状況でmain.exeファイルを実行したいのです。
そのためにまず、 csc /r:”C:\dll\Add.TestClass.dll" main.cs
上記のようなビルドオプションでビルドしてみたのですが、ビルドはとおりましたが
--------------------------------------------------------------------------------------------------------------------
ハンドルされていない例外: System.IO.FileNotFoundException: ファイルまたはアセン
ブリ 'Add.TestClass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'、ま
たはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりませ
ん。
場所 MainClass.Main(String[] args)
--------------------------------------------------------------------------------------------------------------------
というエラーがでました。
このdllファイルを特定の任意のディレクトリ内において、main.exeを実行してうまく動くようにするためには
どのようなビルドオプションをつけたらいいのでしょうか?
よろしくご教授お願いいたしま。
No.1ベストアンサー
- 回答日時:
ビルドオプションではなく,アプリケーション構成ファイルを記述する必要があります。
codeBase要素を使うことをお薦めしますが,ファイル数が多い場合などはprobing要素が楽ではあります。
References)
ランタイムがアセンブリを検索する方法 http://msdn.microsoft.com/ja-jp/library/yx7xezcf
手順 4 : コードベースまたはプローブによるアセンブリの検索 http://msdn.microsoft.com/ja-jp/library/15hyw9x3
<codeBase> 要素 http://msdn.microsoft.com/ja-jp/library/efs781xb
<probing> 要素 http://msdn.microsoft.com/ja-jp/library/823z9h8w
@IT:インサイド .NET Framework [改訂版]第3回 アセンブリのロード http://www.atmarkit.co.jp/fdotnet/technology/idn …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SVFの設定について:クラスパス...
-
『ClassNotFoundException: org...
-
classファイルについて
-
JAR内のクラス一覧と、メソッド...
-
「削除するか、クラスパスの正...
-
Eclipseでデバッグが出来ないエ...
-
org.apache.tools.zip.* を使っ...
-
eclipse でclassesフォルダーが...
-
Eclipse・プロジェクトで、フォ...
-
JADで*.jarごとデコンパイルす...
-
Eclipseで、クラスを新規作成す...
-
”書きこみできません”とエラー...
-
javaクラスファイルをEclipseで...
-
Jarコマンドでマニフェストファ...
-
jdbcドライバのjarファイルにク...
-
earファイルを展開する方法
-
Win7にて、VS2003作成アプリ実行時
-
java.io.Fileクラスは絶対パス...
-
プログラム実行の際に、「ソー...
-
java クラスファイルとソースコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
classファイルについて
-
SVFの設定について:クラスパス...
-
javaクラスファイルをEclipseで...
-
eclipse でclassesフォルダーが...
-
earファイルを展開する方法
-
Eclipse「リフレッシュ」と「ク...
-
jdbcドライバのjarファイルにク...
-
EclipseでHTTP404エラーが出る。
-
『ClassNotFoundException: org...
-
javax.mailがimportできない
-
【Eclipse】パッケージ・エクス...
-
VisualStudioでC++クラスを追加...
-
「main メソッドを持つクラスが...
-
java クラスファイルとソースコ...
-
結局 deleteしないとダメ? フ...
-
FileWriterで8kb以上書き込むに...
-
「削除するか、クラスパスの正...
-
【Eclipse】逆コンパイルでエラ...
-
Eclipseで、クラスを新規作成す...
おすすめ情報