您的位置:首页 > 其它

201402 系统更新后 VS2010 的宏功能不能正常使用(如添加头注释)

2014-03-01 09:18 344 查看
过完年回来,更新完系统补丁后。发下VS2010 中原先添加头注释的宏命令(Macros)不能使用。遂在网上寻找解决方法,功夫不负有心人,找到了这篇文章:http://visualstudioextensions.vlasovstudio.com/2014/02/13/visual-studio-2010-macros-stop-working-after-february-2014-windows-update/

原因: 2014
年 2 月 11 日 Windows 更新的安装,中断了 Visual Studio 2010 的宏功能。宏功能既不运行也不报错。更具体地说,它是重要更新 MS14-009 “
.NET Framework 中的漏洞可能允许特权提升 (2916607)” 中断了宏功能。更具体地说,它是次更新的特权提升部分。

解决方法如下:

方法一:卸载已经安装的系统更新补丁(如下图):



方法二:修改配置文件(针对64位)(修改文件如下):

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr10.exe.config"
"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.config"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config"

在配置文件的 <runtime>
后面添加<AllowDComReflection enabled="true"/>即可(重启VS2010):

<configuration>
<runtime>
<AllowDComReflection enabled="true"/>

如果安装的是VS2008,则修改的文件为:

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr.exe.config"
"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv.exe.config"
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config"


本人使用了第二种方法,成功解决问题。

后记:

二月二十五号, 微软发布 KB2934830"反射类型可能不工作通过 DCOM 安全公告 MS14 009″ 从安装安全更新后进行封送处理。此外,Microsoft
Visual Studio 中的宏功能可能也无法按预期正常运行。

适用于
.NET Framework 的安全公告 MS14-009 将阻止反射类型的封送处理。阻止的类型包括以下几种以及由此派生的所有类型。

System.Type
System.Reflection.Assembly
System.Reflection.MemberInfo
System.Reflection.Module
System.Reflection.MethodBody
System.Reflection.ParameterInfo
System.Reflection.TypeInfo
System.Reflection.MethodInfo
System.Reflection.FieldInfo

若要安全还原 Visual Studio 宏的功能,请根据系统中安装的 Visual Studio 版本更新以下应用程序配置文件之一。

最简单快捷的解决方法如下:

版本文件夹文件名
Visual Studio 2005 Service Pack 1 (SP1)\Program Files (x86)\Common Files\Microsoft Shared\VSA\8.0\VsaEnvVsmsvr.exe.config
Visual Studio 2008\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnvVsmsvr.exe.config
Visual Studio 2010\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnvVsmsvr10.exe.config
注意 对于 32 位安装,路径位于 \Program Files\ 下。

对于所有受影响的 Visual Studio 版本,配置文件的修改过程均相同。您需要在 <runtime> 部分中添加 AllowDComReflection 开关,如下所示:

<AllowDComReflection enabled="1"/>


此更新会阻止反射类型离开托管代码,但未阻止它们进入托管代码。因此,在大多数情况下,您只需要在客户端设置配置开关。您应仅将此配置开关用于那些需要设置该开关的应用程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐