Заставить .NET считать конкретный сетевой ресурс полностью доверенным

У меня установлена ​​(только) Visual Studio 2010. Я' m пытаюсь запустить мои модульные тесты из командной строки build-system. Все мои разработки находятся в моем домашнем каталоге на сервере Linux, который используется совместно с Samba. Когда я пытаюсь запустить NUnit, я получаю такую ​​ошибку:

Unhandled Exception: System.TypeInitializationException: The type initializer for 'NUnit.ConsoleRunner.Runner' threw an exception. ---> System.Security.Security
Exception: That assembly does not allow partially trusted callers.
   at NUnit.ConsoleRunner.Runner..cctor()
The action that failed was:
LinkDemand
The assembly or AppDomain that failed was:
nunit-console-runner, Version=2.5.9.10305, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
The method that caused the failure was:
NUnit.Core.Logger GetLogger(System.Type)
The Zone of the assembly that failed was:
Intranet
The Url of the assembly that failed was:
file:///Z:/gitrepos/smarties/dependencies/Windows-x86/NUnit-2.5.9.10305/bin/net-2.0/lib/nunit-console-runner.DLL
   --- End of inner exception stack trace ---
   at NUnit.ConsoleRunner.Runner.Main(String[] args)
   at NUnit.ConsoleRunner.Class1.Main(String[] args)

Я пробовал использовать caspol.exe, как описано здесь: Редактировать и запускать проекты .NET из общих сетевых ресурсов

>caspol -addgroup 1.2 -url file:///Z:/* FullTrust -name MyZShare
Microsoft (R) .NET Framework CasPol 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

WARNING: The .NET Framework does not apply CAS policy by default. Any settings shown or modified by CasPol will only affect applications that opt into using
CAS policy.

Please see http://go.microsoft.com/fwlink/?LinkId=131738 for more information.


The operation you are performing will alter security policy.
Are you sure you want to perform this operation? (yes/no)
yes
Added union code group with "-url" membership condition to the Machine level.
Success

Это не дает очевидного эффекта.

Другие инструкции говорят мне найти какой-нибудь инструмент политики безопасности Microsoft .NET в разделе «Администрирование» на панели управления, но у меня нет такого инструмента. (Это потому, что у меня только Visual Studio 2010, а не более ранние версии? Я использую 64-разрядную версию Windows 7 Pro, если это имеет значение.)

Я просто хочу, чтобы .NET верила, что этот каталог находится на моем собственная машина, а не часть интрасети. Я не хочу, чтобы какой-либо из этого кода запускался из общего сетевого ресурса при развертывании, только в рамках разработки. Я также не хочу слепо доверять всем сетевым ресурсам, хотя даже это было бы более приемлемым решением, чем копирование всего на локальный диск каждый раз, когда я хочу запустить тест.

Я бы предпочел не подписывать все с помощью сильные имена на данном этапе разработки. (И я даже не уверен, поможет ли это, поскольку NUnit, очевидно, дает сбой еще до того, как загрузил мою сборку.)


РЕДАКТИРОВАТЬ - В конце концов оказалось, что я пытался решить не ту проблему. Разбираясь, как заставить NUnit запускать тесты .NET 4.0 без подпроцесса, я обнаружил следующее:

http://frater.wordpress.com/2010/05/04/debugging-nunit-tests-under-visual- studio-2010 /

Он говорит:

Согласно эта страница , вам также следует добавить эту строку под элементом времени выполнения [в nunit-console.exe.config]:

Это позволяет загружать библиотеки, загруженные с удаленного сайта (например, веб-сайта), с полным доверием. Я не уверен, почему это было необходимо, и действительно, мое приложение отлично отлаживало NUnit и без него. Однако, если у вас возникнут проблемы, вы можете попробовать.

Это решило мою проблему без необходимости возиться с Caspol.

7
задан Community 23 May 2017 в 12:34
поделиться