Не берется новая версия длл
От: e.thrash  
Дата: 11.09.18 17:06
Оценка:
Почему не берется новая версия длл если я подменяю длл после первого прохода.
То есть один раз прошел в цикле пересобрал длл с новым возвращаемым значением и возвращается всё равно старая версия функции.
Пробовал менять версию вызываемой длл и ее гуид — не помогло


 static void Main(string[] args)
        {
            int cnt = 0;
            while (Console.ReadLine().Length < 3)
            {
                var appDomain = AppDomain.CreateDomain($"test, cnt");
                var assemblyName = new AssemblyName
                {
                    CodeBase = @"d:\SharedDll.dll"
                };
                Assembly assembly = appDomain.Load(assemblyName);

                var theType = assembly.GetType("SharedDll.Class1");
                var c = Activator.CreateInstance(theType);
                var method = theType.GetMethod("Get");
                var retVal = method.Invoke(c, new object[] { });
                
                Console.WriteLine(retVal);
                cnt++;
                AppDomain.Unload(appDomain);

                GC.Collect(); // collects all unused memory
                GC.WaitForPendingFinalizers(); // wait until GC has finished its work
                GC.Collect();
            }

            Console.WriteLine("Finish");
            Console.ReadLine();
        }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.