Ошибка построения проектов Visual Studio 2010 Silverlight 4 в Windows 7 в режиме XP - PullRequest
3 голосов
/ 01 декабря 2009

Я установил Visual Studio 2010 Beta 2 в виртуальной машине в режиме XP на Windows 7. Затем я создал тривиальный проект Silverlight 4 (бета) и попытался его построить. Я получаю следующую ошибку:

Ошибка 1 Ошибка задачи «ValidateXaml» неожиданно. System.IO.FileLoadException: не удалось загрузить файл или сборку «Файл: // \ TSCLIENT \ d \ Users \ Me \ Documents \ Визуальное студия 2010 \ Projects \ SilverlightApplication2 \ SilverlightApplication2 \ OBJ \ Debug \ SilverlightApplication2.dll» или одна из его зависимостей. операция не поддерживается. (Исключение из HRESULT: 0x80131515)

Имя файла: «Файл: // \ TSCLIENT \ d \ Users \ Me \ Documents \ Визуальное студия 2010 \ Projects \ SilverlightApplication2 \ SilverlightApplication2 \ OBJ \ Debug \ SilverlightApplication2.dll» ---> System.NotSupportedException: была предпринята попытка загрузить сборку из сетевого расположения, которое будет вызвало собрание быть песочница в предыдущих версиях .NET Framework. Этот выпуск .NET Framework не включает CAS политика по умолчанию, поэтому эта загрузка может быть опасно. Если эта нагрузка не предназначен для песочницы сборки, пожалуйста, включите Переключатель loadFromRemoteSources. Увидеть http://go.microsoft.com/fwlink/?LinkId=155569 для получения дополнительной информации.

в System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName, Строка codeBase, Доказательства AssemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & stackMark, Boolean throwOnFileNotFound, Boolean для самоанализа, логическое suppressSecurityChecks) в System.Reflection.RuntimeAssembly.nLoad (AssemblyName fileName, Строка codeBase, Доказательства AssemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & stackMark, Boolean throwOnFileNotFound, Boolean для самоанализа, логическое suppressSecurityChecks) в System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName AssemblyRef, Доказательства AssemblySecurity, StackCrawlMark & stackMark, логическое значение для самоанализа, Boolean suppressSecurityChecks) в System.Reflection.RuntimeAssembly.InternalLoadFrom (String AssemblyFile, Доказательства securityEvidence, Byte [] hashValue, AssemblyHashAlgorithm hashAlgorithm, Логическое для самоанализа, логическое suppressSecurityChecks, StackCrawlMark & ​​stackMark) в System.Reflection.Assembly.LoadFrom (String AssemblyFile) в Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute (ITask задача) в Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute (ITask задача) в Microsoft.Silverlight.Build.Tasks.ValidateXaml.Execute () в Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () в Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, Ведро ItemBucket, TaskExecutionMode howToExecuteTask, Boolean & taskResult)

Я полагаю, это связано с тем, что режим XP перенаправляет папку «Мои документы» на хост, превращая ее в общую сетевую папку, и запускается какая-то политика CAS / безопасности.

Кто-нибудь знает, как это исправить?

Ответы [ 3 ]

4 голосов
/ 13 апреля 2010

Включение loadFromRemoteSources также объяснено на http://social.msdn.microsoft.com/Forums/en-US/webdevelopmentprerelease/thread/ea9b9cab-cbfd-496d-8a81-7b3dd06e8c23 вместе с другой опцией; установить переменную среды COMPLUS_EnableLegacyCASPolicy.

Редактировать: (скопировать и вставить с указанного выше URL, когда сообщение было удалено)

Дэвид ДеВинтер - MSFT (среда, 20 мая 2009 г., 2:10)

Предостережение: я не в команде безопасности, но все же попытаюсь ответить на этот вопрос ...

Здесь происходит то, что задачи сборки для Silverlight пытаются загрузить сборку, которая в предыдущих версиях CLR классифицировала ее как сборку с частичным доверием на основе ее свидетельства (например, зоны) в соответствии с политикой CAS.

В CLR 4.0 политика CAS полностью устарела и даже не включена по умолчанию. Однако в этих обстоятельствах CLR выдает исключение, когда то, что будет частичной доверительной нагрузкой в ​​CLR 2.0, является полной доверительной нагрузкой в ​​CLR 4.0.

Переключатель loadFromRemoteSources, на который ссылается сообщение Exception, находится в элементе среды выполнения в конфигурации и выглядит следующим образом:

<runtime>
  <loadFromRemoteSources enabled="true|false" />
</runtime>

Это не активирует устаревшую политику CAS, но позволит вам (или, в данном случае, системе сборки) загружать удаленные сборки с теми же разрешениями, что и у хоста AppDomain. В этом случае кажется, что вы могли бы изменить конфигурацию системы сборки (я предполагаю, что в этом случае будет Visual Studio:% ProgramFiles% \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe.config), чтобы включить это переключатель.

Если вы не хотите изменять эту конфигурацию, вы можете установить для переменной среды COMPLUS_EnableLegacyCASPolicy значение 1, что активирует политику CAS, присутствующую в CLR 2.0, а также позволит Silverlight загрузить эту задачу.

Надеюсь, это поможет. Дэвид, Блог - http://blogs.rev -net.com / ddewinter / Twitter - @ ddewinter

4 голосов
/ 01 декабря 2009

Вы добавили <loadFromRemoteSources enabled="true"/> в свой файл конфигурации?

3 голосов
/ 23 января 2010

Должно работать, если добавить <loadFromRemoteSources enabled="true"/> в devenv.exe.config . Больше информации на http://msdn.microsoft.com/en-us/library/dd409252%28VS.100%29.aspx

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