в моем новом проекте (windows-C # -vs2008) я хочу, чтобы исполняемый файл мог автономно обновлять себя - возможно, с сетевого сервера) затем измените метод CurrentDomain_AssemblyResolve ()
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
таким образом, чтобы он сначала проверял наличие библиотеки в изолированном хранилище, а затем загружал ее из исполняемого файла.Но что, если я захочу что-то изменить в главном exe.[Я попытался создать проект загрузчика (console ap), из которого он вызывает мою основную программу (изменил вывод как dll), однако на этот раз событие разрешения сборки не получает триггер, потому что ссылочные dll генерируются в папке bin нового загрузчикапроект во время компиляции] Любая помощь будет принята с благодарностью ..
public static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
try
{
string assemName = new AssemblyName(args.Name).Name;
object i_StoreRootDir = i_StorageFile.GetType().GetField
("m_RootDir", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(i_StorageFile);
string i_StorePath = CombinePaths(i_StoreRootDir.ToString(), I_STOREDIR, assemName, DLL_EXT);
if (File.Exists(i_StorePath))
{
return Assembly.LoadFrom(i_StorePath);
}
else
{
//load it from resource.
return null;
}
}
catch (Exception)
{
throw;
}