использование элемента codebase в файле .config для загрузки сборки по произвольному пути - PullRequest
2 голосов
/ 04 мая 2011

Моя проблема состоит в том, чтобы попытаться выяснить, как загрузить сборку .NET из произвольного местоположения. В моем сценарии я не хочу использовать подкаталог (исключающий подход к поисковому пути) или GAC. Подкаталогный подход обеспечивает сохранение нескольких копий сборки, поскольку сборка используется несколькими вызывающими. Сценарий GAC является долгосрочным ответом, но предпринимаются определенные усилия для перехода к такому подходу. Для Visual Studio 2010 я вижу использование GAC с этими основными параметрами: встроенный установщик получил много критики, версия InstallShield Limited довольно приятная, но, похоже, не поддерживает GAC (платные версии InstallShield, конечно,) и WiX считается имеющим кривую обучения для использования.

Я упоминаю все это о GAC прежде всего потому, что любой из многочисленных людей, которые задавали этот вопрос, всегда, казалось, указывался в направлении GAC. Это разочаровывает, потому что элемент codebase, кажется, является именно тем, что я желаю для своего строго названного вызывающего и названных сборок. Мой файл app.config выглядит так:

<?xml version="1.0"?>
<configuration>
  <startup>

  <supportedRuntime version="v2.0.50727"/></startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft.com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="SharedProgramTest"
                          Culture="neutral"
                          PublicKeyToken="c422f85319da5fe0"
                          />
        <codeBase version ="1.0.0.1"
                  href="file:///D:/SomewhereElse/SharedProgramTest.dll" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Спасибо, Джон Виггер

1 Ответ

1 голос
/ 22 июня 2011

Соответствует ли Assembly.LoadFile или Assembly.LoadFrom вашим требованиям?

Если нет, думаю, вы можете подключиться к событию AppDomain.AssemblyResolve:
http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...