Пока идет программирование, и вы обращаетесь к своим файлам в пакетах NuGet, программирование с зависимостями не так уж и сложно, но я создал приложение для расширения существующего приложения, которое опирается в основном на те же файлы dll, что и основная программа.
Теперь я не хочу фактически размещать расширение в нашем главном каталоге приложений, потому что удобнее иметь его универсальное и иметь возможность скопировать его пользователем или администратором в место, которое им нравится.
В псевдокоде код во время программирования выглядит следующим образом:
using Newtonsoft.Json;
...
public void xyz()
{
JsonSerializer ObjectSerializer = new JsonSerializer();
... Do Stuff ...
}
Я могу быть совершенно уверен, что соответствующий файл dll находится в локальном каталоге на соответствующих компьютерах, поэтому есть раздел реестра, в котором я могу прочитать фактический путь из.
Без динамического желания загрузить dll, код работает нормально,
но я надеюсь, что что-то подобное будет возможно (in the Program.cs - without any using directives to 3rd party dlls!!! - namespace might be loaded anyway
):
private static void Main(string[] args)
{
string ProgramPath = FindProgramPath();
System.Reflection.Assembly.LoadFrom(ProgramPath + @"System.Net.Http.Formatting.dll");
System.Reflection.Assembly.LoadFrom(ProgramPath + @"Newtonsoft.Json.dll");
... Do Stuff
}
Следует ли обернуть логику в другой файл, который будет загружен в текущем контексте, возможно, в качестве ресурса, чтобы быть уверенным, что остальные необходимые файлы загружены соответственно? Или кто-то еще знает способ быть независимым от расположения папки, не раздувая фактический исполняемый файл?