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

来源:互联网 发布:买家淘宝退款率高咋办 编辑:程序博客网 时间:2024/05/19 17:48

过完年回来,更新完系统补丁后。发下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.configVisual Studio 2008\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnvVsmsvr.exe.configVisual 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"/>

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