Я пытаюсь сделать демонстрацию для Fusion Log Viewer, желая просмотреть журналы привязки сборки в настраиваемом каталоге.
Я только что создал для этого небольшое демонстрационное приложение:
Проект небольшой библиотеки классов, содержащий только один метод GetString () и установленную версию сборки как 1.0.0.0.
namespace ClassLibrary1
{
public class Class1
{
public static string GetString()
{
return "yes";
}
}
}
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Небольшой проект консольного приложения, ссылающийся на указанную выше библиотеку и имеющий следующий код:
Ссылки ClassLibrary1.dll Версия 1.0.0.0
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(ClassLibrary1.Class1.GetString());
Console.ReadLine();
}
}
}
Я создаю это консольное приложение и закрываю визуальную студию, а затем запускаю исполняемый файл. Он печатает «да», как и ожидалось.
Затем я обновляю AssemblyInfo ClassLibrary1 следующим образом, чтобы изменить его номер версии на 2.0.0.0:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")]
После замены библиотеки внутри консольного приложения на эту версию 2.0 и повторного запуска исполняемого файла он по-прежнему работает и печатает «да».
Почему он все еще работает, если в нем нет указанной DLL? Ожидается создание ошибки журнала привязки сборки внутри пользовательского каталога Fusion Log Viewer.
Кто-нибудь может объяснить, почему он все еще работает?