FileIOPermission SecurityException при запуске Xunit в TFS - PullRequest
0 голосов
/ 20 мая 2011

Я пытаюсь интегрировать тесты Xunit в нашу сборку TFS.

Я поместил xunit.runner.msbuild.dll и xunit.runner.utility.dll в папку "C: \ Program Files \ MSBuild \ Xunit". У меня есть задача в файле сборки для вызова в задачу Xunit:

<UsingTask AssemblyFile="$(MSBuildExtensionsPath)\Xunit\xunit.runner.msbuild.dll" TaskName="Xunit.Runner.MSBuild.xunit"/>
.....
<xunit Assembly="$(DropLocation)\$(BuildNumber)\Release\MyDll.dll" Html="TestRun.htm" />

Я получаю сообщение об ошибке, которое не знаю, как отлаживать. Я попытался предоставить пользователю «Все» полный контроль над папкой Xunit.

D:\bld\141\BuildType\Test.proj(50,3): error : System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
  D:\bld\141\BuildType\Test.proj(50,3): error :    at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
  D:\bld\141\BuildType\Test.proj(50,3): error :    at System.Security.CodeAccessPermission.Demand()
  D:\bld\141\BuildType\Test.proj(50,3): error :    at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  D:\bld\141\BuildType\Test.proj(50,3): error :    at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
  D:\bld\141\BuildType\Test.proj(50,3): error :    at Xunit.Sdk.Executor..ctor(String assemblyFilename)
  D:\bld\141\BuildType\Test.proj(50,3): error :    at Xunit.ExecutorWrapper.RethrowWithNoStackTraceLoss(Exception ex)
  D:\bld\141\BuildType\Test.proj(50,3): error :    at Xunit.ExecutorWrapper.CreateObject(String typeName, Object[] args)
  D:\bld\141\BuildType\Test.proj(50,3): error :    at Xunit.ExecutorWrapper..ctor(String assemblyFilename, String configFilename, Boolean shadowCopy)
  D:\bld\141\BuildType\Test.proj(50,3): error :    at Xunit.Runner.MSBuild.xunit.ExecuteAssembly(String assemblyFilename, String configFilename, IRunnerLogger logger)

1 Ответ

0 голосов
/ 21 мая 2011

По умолчанию служба сборки TFS работает как «Сетевая служба».Это можно проверить, просмотрев вкладку «Удостоверение» диалогового окна «Свойства» для службы сборки Team Foundation в диспетчере управления службами (services.msc) на компьютере сборки.Если вы используете TFS 2010, вы также можете проверить удостоверение в Консоли администрирования TFS на компьютере сборки.

Удивительно, но группа «Все» не включает учетную запись «Сетевая служба».Итак, вы захотите предоставить права на чтение / выполнение вашей папке XUnit учетной записи сетевой службы.Я предполагаю, что это локальная папка, а не сетевой ресурс.

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