在XP模式下的Windows 7上生成Visual Studio 2010 Silverlight 4项目时出错 [英] Error building Visual Studio 2010 Silverlight 4 projects on Windows 7 with XP Mode

查看:14
本文介绍了在XP模式下的Windows 7上生成Visual Studio 2010 Silverlight 4项目时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Windows 7的XP模式下安装了Visual Studio 2010 Beta 2。然后我创建了一个简单的Silverlight 4(测试版)项目并尝试构建它。我收到以下错误:

错误1"ValiateXaml"任务失败 出乎意料的是。 System.IO.FileLoadException:无法 加载文件或程序集 ‘文件://sclientdUsersmeDocumentsVisual. 演播室 2010ProjectsSilverlightApplication2SilverlightApplication2objDebugSilverlightApplication2.dll‘ 或者它的一个依赖项。操作 不支持。(例外情况来自 HRESULT:0x80131515)

文件名: ‘文件://sclientdUsersmeDocumentsVisual. 演播室 2010ProjectsSilverlightApplication2SilverlightApplication2objDebugSilverlightApplication2.dll‘ ->System.NotSupportdException:试图加载程序集 来自网络位置,该位置将 导致了集会被 在以前版本的 .NET框架。此版本的 .NET框架不支持CAS 默认策略,因此此负载可能是 危险。如果此负载不是 意在用沙箱保护组件, 请启用 LoadFromRemoteSources开关。看见 http://go.microsoft.com/fwlink/?LinkId=155569 了解更多信息。

在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名,字符串代码库,证据 程序集安全性,运行程序集 LocationHint、StackCrawlMark&; 堆栈标记,布尔值 ThrowOnFileNotFound,布尔值 用于自省,布尔型 SuppressSecurityChecks)位于 System.Reflection.RuntimeAssembly.nLoad(AssemblyName 文件名,字符串代码库,证据 程序集安全性,运行程序集 LocationHint、StackCrawlMark&; 堆栈标记,布尔值 ThrowOnFileNotFound,布尔值 用于自省,布尔型 SuppressSecurityChecks)位于 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName 汇编参考,证据 装配安全、堆栈爬网标记(&A) StackMark,用于内部检查的布尔值, 布尔抑制SecurityChecks)位于 System.Reflection.RuntimeAssembly.InternalLoadFrom(String 汇编文件,证据 安全证据、字节[]hashValue、 ASSEMBLYHASH算法哈希算法, 用于内部检查的布尔值,布尔值 SuppressSecurityChecks, StackCrawlMark和amp;stackMark)位于 System.Reflection.Assembly.LoadFrom(字符串 Assembly文件)位于 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 Bucket,TaskExecutionMode HowToExecuteTask,Boolean&;taskResult)

我认为这与XP模式将My Documents文件夹重定向到主机,将其转换为网络共享位置,并且正在触发某种CAS/安全策略有关。

有人知道如何修复它吗?

推荐答案

http://social.msdn.microsoft.com/Forums/en-US/webdevelopmentprerelease/thread/ea9b9cab-cbfd-496d-8a81-7b3dd06e8c23中还介绍了如何启用从远程源加载以及另一个选项;请设置环境变量COMPLUS_EnableLegacyCASPolicy。

编辑:(删除帖子时从上面的URL复制并粘贴)

大卫·德温特-MSFT(2009年5月20日星期三凌晨2:10)

警告:我不是安全团队的成员,但我会尝试回答这个问题...

此处发生的情况是,Silverlight的生成任务正在尝试加载一个程序集,在CLR的早期版本中,该程序集将根据其证据(例如其区域)根据CAS策略将其分类为部分信任程序集。

在CLR 4.0中,CAS策略已完全弃用,甚至在默认情况下都未启用。但是,在这种情况下,当CLR 2.0中的部分信任负载在CLR 4.0中是完全信任负载时,CLR似乎会引发异常。

异常消息所指的loadFromRemoteSources开关位于配置下的运行时元素中,如下所示:

<runtime>
  <loadFromRemoteSources enabled="true|false" />
</runtime>
这将不会启用旧的CAS策略,但将允许您(或在本例中为生成系统)使用与宿主AppDomain相同的权限加载远程程序集。在这种情况下,您似乎可以修改生成系统的配置(在这种情况下,我假设它是Visual Studio:%ProgramFiles%Microsoft Visual Studio 10.0Common7IDEdevenv.exe.config)以启用此开关。

如果您不想修改该配置,则可以将环境变量COMPLUS_EnableLegacyCASPolicy设置为1,这将启用CLR 2.0中存在的CAS策略,并允许Silverlight加载此任务。

希望这能有所帮助。 大卫,博客-http://blogs.rev-net.com/ddewinter/推特-@ddewin

这篇关于在XP模式下的Windows 7上生成Visual Studio 2010 Silverlight 4项目时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆