アプリ版:「スタンプのみでお礼する」機能のリリースについて

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を実行してうまく動くようにするためには
どのようなビルドオプションをつけたらいいのでしょうか?
よろしくご教授お願いいたしま。

A 回答 (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 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!