Как добавить папку в путь поиска сборки во время выполнения в .NET?

Я вижу набор ответов, в которых говорится, что помещение всего о пользователе 123 в ресурсе "/user/123" УСПОКОИТЕЛЬНОЕ.

Roy Fielding, который ввел термин, говорит , API REST должны управляться гипертекстом . В частности, "API REST не должен определять зафиксированные имена ресурса или иерархии".

Поэтому, если Ваш путь "/user/123" является hardcoded на клиенте, это не ДЕЙСТВИТЕЛЬНО УСПОКОИТЕЛЬНО. Хорошее использование HTTP, возможно, возможно, нет. Но не УСПОКОИТЕЛЬНЫЙ. Это должно прибыть из гипертекста.

120
задан starblue 20 September 2009 в 18:08
поделиться

3 ответа

Похоже, вы можете использовать событие AppDomain.AssemblyResolve и вручную загрузить зависимости из каталога DLL.

Изменить (из комментария):

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += new ResolveEventHandler(LoadFromSameFolder);

static Assembly LoadFromSameFolder(object sender, ResolveEventArgs args)
{
    string folderPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
    string assemblyPath = Path.Combine(folderPath, new AssemblyName(args.Name).Name + ".dll");
    if (!File.Exists(assemblyPath)) return null;
    Assembly assembly = Assembly.LoadFrom(assemblyPath);
    return assembly;
}
145
ответ дан 24 November 2019 в 01:38
поделиться

Вы можете добавить пробный путь ] в файл .config вашего приложения, но он будет работать, только если путь зондирования содержится в базовом каталоге вашего приложения.

55
ответ дан 24 November 2019 в 01:38
поделиться

загляните в AppDomain.AppendPrivatePath (устарело) или AppDomainSetup.PrivateBinPath

4
ответ дан 24 November 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: