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

过完年回来,更新完系统补丁后。发下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\VsaEnv Vsmsvr.exe.config
Visual Studio 2008 \Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv Vsmsvr.exe.config
Visual Studio 2010 \Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv Vsmsvr10.exe.config

注意  对于 32 位安装,路径位于 \Program Files\ 下。

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

此更新会阻止反射类型离开托管代码,但未阻止它们进入托管代码。因此,在大多数情况下,您只需要在客户端设置配置开关。您应仅将此配置开关用于那些需要设置该开关的应用程序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值