Поскольку английский sh не является моим родным языком, я постараюсь объяснить его как можно более четко.
У меня есть старый проект на Visual Basi c, предназначенный для. NET Framework В версии 4.5.2 в проекте есть ссылка на System.Drawing dll, но нет ссылки на dll System.Drawing.Common, при выполнении приложения в моей разработке P C все работает нормально.
Моя проблема в том, что когда я запускаю его на виртуальной машине, которую я начинаю использовать по требованию моего босса, на котором не установлено NET, приложение не может найти ссылку на System.Drawing.Common dll; Я уже установил на виртуальную машину:
- . NET Compact Framework 2.0 (так как мой босс сказал мне, что это могут быть даже более старые dll)
- . NET Compact Framework 3.5 (поскольку он шел с версией 2.0)
- Windows Desktop Runtime 3.0.3 (Причина Я нашел несколько ссылок, в которых говорилось, что dll является частью. NET Core)
- Windows Desktop Runtime 3.1.3 (на всякий случай)
И попытка установить любую из версий. NET 4.x говорит мне, что она уже установлена, потому что ОС Windows 10.
Так как это, похоже, не сработало, я также поместил копию System.Drawing.Common.dll непосредственно в исполняемый каталог и изменил проект, чтобы загрузить его при возникновении события AssemblyResolve. Но он все еще не работает, и также я не могу понять, почему он запрашивает эту сборку, если ни одна из моих библиотек и exe-ссылок на нее.
Я пытаюсь оставить виртуальную машину без инструментов разработчика, так Я не уверен, что еще делать. Был бы весьма признателен, если бы кто-нибудь имел представление о моей проблеме. Спасибо.
Редактировать: в моей голове больше шума: если System.Drawing.Common является dll из NET, не следует ли автоматически загружать его в любое приложение. NET, когда необходимо? или, по крайней мере, восстановить, так как я уже поместил dll в ту же папку, что и файл .exe моего приложения