Visual Studio - загрузка ссылок вне папки компиляции - PullRequest
0 голосов
/ 20 февраля 2012

Я использую Visual Studio для создания программы на C #.У меня есть сторонний Dll, который я загружаю.Это работает, но я хочу, чтобы он находился в подкаталоге каталога компиляции.(Выпуск \ lib \ вместо выпуска).Я могу сделать это с помощью файла exe.config, но я не хочу, чтобы пользователи могли изменять, где программа ищет Dll.Итак, как мне ссылаться на Dlls в подкаталоге без использования exe.config?

Ответы [ 2 ]

0 голосов
/ 06 июля 2012

Важно указать PrivateBinPath перед началом загрузки dll.

static class Program
{
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = "path";
        Application.Run(new Form1());
    }
}

И если dll в папке приложения нужна другая dll в указанной нами папке PrivateBinPath, она не будет работать.Все библиотеки должны быть в одной папке ...

0 голосов
/ 20 февраля 2012

Я думаю, вам понадобится AppDomainSetup.PrivateBinPath настройка свойства для вашего домена. Укажите в этом свойстве пути к папкам (если их несколько, разделенных знаком «;»), где находятся ваши ссылочные сборки. Таким образом, вы делаете знак сборке для поиска в указанных каталогах необходимых ссылок.

Обратите внимание, что это свойство работает только для каталогов, которые являются подкаталогами для пути bin, но похоже, что это именно тот случай.

РЕДАКТИРОВАТЬ

Пример:

 AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = "path1;path2;...";

Удачи.

...