Лицензия ServiceStack не найдена при использовании NUnit 3 через Console Runner в TeamCity - PullRequest
1 голос
/ 06 февраля 2020

Я использую действующий лицензионный ключ. Но я продолжаю получать эту ошибку:

ServiceStack.LicenseException : The free-quota limit on '10 ServiceStack Operations' has been reached. Please see https://servicestack.net to upgrade to a commercial license or visit https://github.com/ServiceStackV3/ServiceStackV3 to revert back to the free ServiceStack v3.

До сих пор я пробовал следующее:

  • Сохранение моего лицензионного ключа в app.config
  • Сохранение моей лицензии введите web.config
  • Добавление ключа в качестве переменной системной среды с именем «SERVICESTACK_LICENSE»
  • Добавление ключа в качестве системного свойства через параметры сборки TeamCity
  • Добавление ключа в качестве Переменная системной среды через параметры сборки TeamCity
  • Добавление моего ключа путем вызова Licensing.RegisterLicense перед запуском AppHost.Init

При добавлении моего ключа в качестве переменной системной среды через параметры сборки TeamCity I вместо этого получите исключение из JsConfig:

System.TypeInitializationException : The type initializer for 'ServiceStack.Text.JsConfig' threw an exception.
  ----> System.TypeInitializationException : The type initializer for 'ServiceStack.LicenseUtils' threw an exception.
  ----> System.IO.FileLoadException : Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at ServiceStack.Text.JsConfig.InitStatics()
   at ServiceStack.AppHostHttpListenerPoolBase..ctor(String serviceName, Int32 poolSize, Assembly[] assembliesWithServices) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\AppHostHttpListenerPoolBase.cs:line 75
   at ServiceStack.AppSelfHostBase..ctor(String serviceName, Assembly[] assembliesWithServices) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\AppSelfHostBase.cs:line 13
   at Alstra.SG.Tests.AppSelfHost..ctor() in C:\TeamCity\buildAgent\work\a0903bf22b2d1e1c\Test\AppSelfHost.cs:line 31
   at Alstra.SG.Tests.Private.BaseIntegrationTest..ctor() in C:\TeamCity\buildAgent\work\a0903bf22b2d1e1c\Test\Private\BaseIntegrationTest.cs:line 16
   at Alstra.SG.Tests.Private.Integration.RespondentServiceTests..ctor()
--TypeInitializationException
   at ServiceStack.LicenseUtils.Init()
   at ServiceStack.Text.JsConfig..cctor() in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\JsConfig.cs:line 21
--FileLoadException
   at System.MemoryExtensions.AsSpan(String text)
   at ServiceStack.Text.Jsv.JsvReader`1.Parse(String value) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\Jsv\JsvReader.Generic.cs:line 81
   at ServiceStack.Text.TypeSerializer.DeserializeFromString[T](String value) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\TypeSerializer.cs:line 67
   at ServiceStack.LicenseUtils.ToLicenseKeyFallback(String licenseKeyText) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\LicenseUtils.cs:line 446
   at ServiceStack.LicenseUtils.RegisterLicense(String licenseKeyText) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\LicenseUtils.cs:line 252
   at ServiceStack.Net45PclExport.RegisterLicenseFromConfig() in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\PclExport.Net45.cs:line 140
   at ServiceStack.LicenseUtils..cctor() in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\LicenseUtils.cs:line 135

При добавлении моего ключа, вызвав Licensing.RegisterLicense перед запуском AppHost.Init, вместо этого я получаю следующее исключение:

System.IO.FileLoadException : Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at System.MemoryExtensions.AsSpan(String text)
   at ServiceStack.Text.Jsv.JsvReader`1.Parse(String value) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\Jsv\JsvReader.Generic.cs:line 81
   at ServiceStack.Text.TypeSerializer.DeserializeFromString[T](String value) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\TypeSerializer.cs:line 67
   at ServiceStack.LicenseUtils.ToLicenseKeyFallback(String licenseKeyText) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\LicenseUtils.cs:line 446
   at ServiceStack.LicenseUtils.RegisterLicense(String licenseKeyText) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\LicenseUtils.cs:line 252
   at Alstra.SG.Tests.Private.BaseIntegrationTest..ctor() in C:\TeamCity\buildAgent\work\a0903bf22b2d1e1c\Test\Private\BaseIntegrationTest.cs:line 17
   at Alstra.SG.Tests.Private.Integration.ActivityServiceTests..ctor()

Счастлив получить некоторые Помогите!

1 Ответ

3 голосов
/ 06 февраля 2020

Я полагаю, что версия ServiceStack, которую вы используете, была построена с другой версией System.Runtime.CompilerServices.Unsafe, чем та, которую вы используете в своем тестовом проекте, и так как bindingredirect не работают в этом контексте. См. Работает ли перенаправление привязки сборки для модульного тестирования с помощью тестового прогона?

В качестве обходного пути вы можете попробовать изменить System.Runtime.CompilerServices.Unsafe в Nuget Package Manager на 4.5.2.

Эта версия соответствует отсутствующей сборке, Версия = 4.0.4.1.

Редактировать: Если вы используете NUnit 3 на этапе сборки NUnit, вы можете указать " Путь к файлу конфигурации приложения: «чтобы указать на ваш app.config. Это должно решить проблему root и позволить вам использовать самую последнюю версию ваших пакетов Nuget (так как тогда будет применен правильный bindingRedirects).

...