私の Windows アプリは、ユーザーが記述したコードの実行時コンパイルを行います。デバッグ モードでは、CompilationClassインスタンスは、アプリが必要とするいくつかのファイルを取得します。しかし、リリース モードでは、同じクラス インスタンスが別の場所からファイルをフェッチするため、エラーが発生します。
// コードのサンプル
CompilationClass cc = new CompilationClass();
List<string> TotalAssemblyFiles;
public Form1()
{
TotalAssemblyFiles = cc.GetAssembliesFile(); // Error in this line
InitializeComponent();
}
何をすべきかわからない..そして問題はリリースモードでのみ発生します。まだパスを指定していません。
// Code for GetAssembliesFiles method
public List<string> GetAssembliesFile()
{
List<string> myAssemblies = new List<string>();
if (!File.Exists(Environment.CurrentDirectory + "\\assemblies.sft"))
{
// do nothing
}
else
{
BinaryFormatter binary = new BinaryFormatter();
Stream sreader = new FileStream(Environment.CurrentDirectory + "\\assemblies.sft", FileMode.Open);
myAssemblies = (List<string>)binary.Deserialize(sreader); // Issue
sreader.Close();
}
return refAssemblies;
}
デバッグ モードでは、myAssemblies は 221 個のファイルをフェッチし、リリース モードでは 355 個のファイルをフェッチします。