Я работаю над программой (написанной другими людьми), эта программа написана на C # с использованием Visual Studio 2010. Почти все было хорошо (за исключением некоторых логических проблем), пока я не попытался вместо этого найти программу в режиме Release. режима отладки. Эта программа загружает модули тестирования (PingTest.dll) и запускается, когда компьютер не используется. Отладочная версия сохраняет все файлы в рабочей папке, в то время как Релизная версия «устанавливает» в c: \ Users \ Macke \ AppData \ Local \ NetMon \ и перезапускается оттуда (все файлы, необходимые для запуска, также хранятся там). Поэтому, когда я запускаю NetMon.exe, он падает. Я добавил несколько try / catch и обнаружил ошибку:
Не удалось загрузить файл или сборку 'CountDow_Idle, версия = 1.0.0.2, Culture = нейтральный, PublicKeyToken = null' или одну из ее зависимостей. Система не может найти указанный файл.
Часть кода, которая его вызывает:
AppDomain aDom = AppDomain.CreateDomain («TestingDomain»);
Сборка testAsm = null;
using (FileStream fs = File.Open(TMP_MOD_NAME, FileMode.Open))
{
using (MemoryStream ms = new MemoryStream())
{
byte[] buffer = new byte[1024];
int read = 0;
while ((read = fs.Read(buffer, 0, 1024)) > 0)
ms.Write(buffer, 0, read);
testAsm = aDom.Load(ms.ToArray());
}
}
INetMonTest iTest = null;
foreach (Type type in testAsm.GetExportedTypes())
{
if (type.BaseType.FullName == "CountDown_Idle.INetMonTest")
{
try
{
iTest = (INetMonTest)aDom.CreateInstanceAndUnwrap(AssemblyName.GetAssemblyName(TMP_MOD_NAME).FullName, type.FullName);
}
catch (Exception ex)
{
MessageBox.Show("AppDomain creation failed:\n\n" + ex.Message);
}
break;
}
}
Я уже искал правильные версии (в файле AssemblyInfo.cs)
Так что, возможно, кто-нибудь может мне помочь.
Спасибо заранее