「fAgent.dll」という名前のクラス ライブラリがあり、この dll ファイルを 2 つのアプリケーションで使用しています。1 つのアプリケーションはデスクトップ アプリで、もう 1 つは Web です。この dll ファイルは、bin ファイルまたは xml ファイルを読み取る必要があります。次のように、デスクトップで bin ファイルを開くことができます。
FileStream fs = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\MyApp\\ConnSettings.bin", FileMode.Open);
dll が bin ファイルを見つけられない場合、次のように xml ファイルを読み取ろうとします。
XmlDocument doc = new XmlDocument();
var path = (new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
doc.Load(path + "\fCns.xml");
FileNotFoundException で、次のコードを試してください。
XmlDocument doc = new XmlDocument();
System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(typeof(fAgent.Tools));
string asmPath = asm.CodeBase;
doc.Load(asmPath.Replace("fAgent.DLL", "fCns.xml"));
Xml ファイルと dll ファイルは同じフォルダーにあります。デスクトップでは機能しますが、Web では機能しません。Mappath関数を使用せずに、Web上の「~/bin」フォルダーを取得する必要があります。これどうやってするの?
回答ありがとうございます。