Как вы можете заставить проект c # игнорировать номер версии сборки? - PullRequest
9 голосов
/ 01 апреля 2011

Я работаю над проектом, который ссылается на dll из другого продукта.Продукт выпускается каждый год, и версия сборок меняется для каждого, хотя методы остаются теми же.Когда я запускаю сборку моего проекта для 2010 года, когда я пытаюсь запустить его для 2009 года, он выдает ошибку, потому что он зависит от другой версии.Есть ли способ обойти это?

Ответы [ 3 ]

8 голосов
/ 01 апреля 2011

Попробуйте выбрать ссылку, и в окне свойств задайте значение Specific Version как false.

7 голосов
/ 01 апреля 2011

Если вы имеете в виду проблему в время выполнения после замены версий вашей сборки без выполнения перекомпиляции программы, ссылающейся на вашу вновь собранную сборку, вы захотите использоватьдиректива <a href="http://msdn.microsoft.com/en-us/library/eftw1fys.aspx" rel="noreferrer"><bindingRedirect></a> для App.config вашей программы (или Web.config, если вы говорите о веб-сайте.)

bindingRedirect используется для указания .NET Framework, что его можно использоватьверсия сборки , отличная от , отличная от той, для которой изначально было скомпилировано приложение.По умолчанию CLR хочет видеть ту же версию DLL, на которую ссылалось ваше приложение во время сборки, и, если это не так, выдает исключение.

1 голос
/ 15 декабря 2014

Можно сопоставить другую .net версию сборки в app.config , который вы поместили в корневую папку приложения

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Waters.ACQUITY.Remote"
                          publicKeyToken="6c13fd0b3604de03"
                          culture="neutral" />
        <bindingRedirect oldVersion="1.40.0.0"
                         newVersion="1.60.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Это решение, когда ссылка на сборку, на которую вы ссылаетесь, имеет ссылкивнутри него в другую указанную версию библиотеки.

Это происходит, когда во время компиляции «Конкретная версия» установлена ​​в значение true.Чтобы избежать этой проблемы, она должна быть ложной.enter image description here

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