今天我在VS中编写了一个宏。在测试过程中,它运行得非常好。然后我尝试创建另一个宏,但不小心将其粘贴到了环境变量模块中。我删除了它并保存了,但现在我创建的所有宏都无法工作。我尝试了内置示例,例如插入日期,它可以工作,但是自定义的宏都不起作用。
谢谢, Ben
今天我在VS中编写了一个宏。在测试过程中,它运行得非常好。然后我尝试创建另一个宏,但不小心将其粘贴到了环境变量模块中。我删除了它并保存了,但现在我创建的所有宏都无法工作。我尝试了内置示例,例如插入日期,它可以工作,但是自定义的宏都不起作用。
谢谢, Ben
不是要抢别人的风头,但由于我被认为是名声不佳的人,无法添加评论,因此我将此信息作为单独的答案添加。
David Coster在之前给出的(正确且非常有帮助的)答案中引用的页面已经更新,反映了卸载有问题的更新不再是必要的事情。您可以通过更改一些配置文件来重新启用宏,如下所述:
更新(2月18日):要在不删除Windows更新的情况下恢复Visual Studio 2010宏功能,您可以向vsmsvr10.exe.config、vsaenv10.exe.config和devenv.exe.config文件中添加AllowDComReflection配置设置(注意,您需要以管理员权限运行编辑器才能正确修改这些文件):
<configuration> <runtime> <AllowDComReflection enabled="true"/>
在一台64位的Windows计算机上,这些文件的默认路径为:
"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"
这些文件已经有了运行时部分,你只需要添加一行代码。
访问引用页面获取完整信息。
更新:在2014年2月,微软发布了一次更新,导致Visual Studio产品中的宏(macros)失效。阅读下面的链接后,在我的Win 7 x64机器上卸载了KB2898869
,它们又恢复正常了。
有关完整故事,请参见此链接。
以下是该链接的一部分:
安装最近的2014年2月11日Windows更新后,Visual Studio 2010宏功能失效。宏不再运行且没有错误消息。更具体地说,MS14-009更新“.NET Framework中的漏洞可能会导致提权(2916607)”(评级重要)破坏了宏。更具体地说,这是此更新中的提权部分。
.NET 4.5.1 .NET 4.5 .NET 4 Windows 8.1 KB2898871 Windows 8 KB2898870 KB2898865 Windows 7 KB2898869 KB2898864 KB2898855 Windows XP KB2898855
我有完全相同的问题。
结果证明是一个宏中的语法错误所导致的。
这种情况曾经发生在我身上,问题出在整个模块底部多了一个 END SUB,与我原本认为有问题的宏毫无关系。