nUnit - игнорировать GAC копию DLL - PullRequest
       6

nUnit - игнорировать GAC копию DLL

6 голосов
/ 20 сентября 2010

Я использую nUnit для модульного тестирования сборки.

Сборка находится в выходном каталоге моего проекта (\ bin \ debug) и загружается в nUnit (Сборки> Добавить сборку) из этого расположения.

Однако более старая версия также есть в GAC, и nUnit подхватывает эту.

Конечно, я могу удалить старую версию и переустановить ее в GAC после сборки, но это займет некоторое время - любой способ заставить nUnit (или, скорее, .NET Framework) забрать версию из bin \ debug реж

EDIT

AssemblyVersion (и, следовательно, строгое имя) обеих версий исправлены - это только версия файла, которая изменяется согласно KB 556041 - Как использовать версию сборки и версию файла сборки

Ответы [ 2 ]

1 голос
/ 25 января 2011

Вы можете попробовать сделать <bindingRedirect> в своем файле .config для перенаправления на локальную сборку и не использовать тот, который установлен в GAC.

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

...

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity
            name="myAssembly"
            publicKeyToken="32ab4ba45e0a69a1"
            culture="neutral" />
        <bindingRedirect
            oldVersion="1.0.0.0"
            newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Это также может быть вам интересно:

Надеюсь, это поможет!

0 голосов
/ 25 февраля 2013

В этой ситуации я склонен НЕ подписывать сборку при модульном тестировании, пока я не буду готов развернуть ее.Это одношаговый процесс, при котором вы переходите к свойствам проекта и очищаете параметр Подписать сборку.Когда вы перекомпилируете, при следующем запуске тестов NUnit заберет его из локальной папки bin, поскольку неподписанные сборки не могут быть развернуты в GAC.Я обнаружил, что даже если у вас уже есть версия сборки в GAC, она все равно будет иметь неподписанную версию, если вы ссылаетесь на тестируемую сборку в проекте.Когда вы закончите с тестами, вы снова включите настройку и развернете.

Не идеально, так как теперь у вас есть этот дополнительный шаг, но как можно ближе, без большой работы.

...