Почему не берется новая версия длл если я подменяю длл после первого прохода.
То есть один раз прошел в цикле пересобрал длл с новым возвращаемым значением и возвращается всё равно старая версия функции.
Пробовал менять версию вызываемой длл и ее гуид — не помогло
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();
}