
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java final 1 2022/06/10 22:49
- Java eclipse実行ができない 2 2022/07/27 04:47
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EclipseでHTTP404エラーが出る。
-
classファイルについて
-
Eclipseの使い方
-
Javaアプリケーションのアイコ...
-
java クラスファイルとソースコ...
-
object 要素貼り込みのアプレッ...
-
DLLでメンバ関数をエクスポート...
-
javax.mailがimportできない
-
SVFの設定について:クラスパス...
-
コンパイルできません
-
Struts2のプログラムについて
-
JAVAアプレットがブラウザで実...
-
ResourceBundleクラスの使い方
-
JSP内で外部jsファイルを指定する
-
java でjarファイルをつくりホ...
-
PowerShellにてZipFileクラス利...
-
jarファイルをダブルクリックで...
-
コマンドライン引数のワイルド...
-
「削除するか、クラスパスの正...
-
packageが見つからないエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
classファイルについて
-
SVFの設定について:クラスパス...
-
Eclipse・プロジェクトで、フォ...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
earファイルを展開する方法
-
eclipse でclassesフォルダーが...
-
「メイン・マニフェスト属性が...
-
jdbcドライバのjarファイルにク...
-
【Eclipse】パッケージ・エクス...
-
java クラスファイルとソースコ...
-
プログラム実行の際に、「ソー...
-
EclipseでHTTP404エラーが出る。
-
Jarコマンドでマニフェストファ...
-
「main メソッドを持つクラスが...
-
サーバから落としてきたWebアプ...
-
EclipseでのJSP・Servlet開発に...
-
「削除するか、クラスパスの正...
-
ファイルのパスの取得について
-
VisualStudioでC++クラスを追加...
おすすめ情報