【发布时间】:2010-09-15 02:18:08
【问题描述】:
我今天在 VS.. 中构建了一个宏,边做边测试,效果很好。我继续构建另一个,但不小心将其粘贴到 EnvironmentVariables 模块中......我将其删除并保存,但现在没有我创建的宏工作。我尝试了内置示例,例如插入日期,它可以工作,但没有任何自定义工作。
谢谢, 本
【问题讨论】:
-
我遇到了同样的问题,没有自定义宏起作用 - 只有示例。你有没有解决过这个问题?
我今天在 VS.. 中构建了一个宏,边做边测试,效果很好。我继续构建另一个,但不小心将其粘贴到 EnvironmentVariables 模块中......我将其删除并保存,但现在没有我创建的宏工作。我尝试了内置示例,例如插入日期,它可以工作,但没有任何自定义工作。
谢谢, 本
【问题讨论】:
不是为了抢风头,但我无法添加 cmets,因为我显然被认为是一个臭名昭著的人,所以我将添加此信息作为单独的答案。
David Coster 之前的(正确且非常有帮助的)回答中引用的页面已更新,以反映不再需要卸载有问题的更新这一事实。可以通过更改一些配置文件来重新启用宏,如下所述:
更新(2 月 18 日):要在不删除 Windows 更新的情况下恢复 Visual Studio 2010 宏功能,您可以添加 AllowDComReflection 配置设置到 vsmsvr10.exe.config、vsaenv10.exe.config 和 devenv.exe.config 文件(注意,您需要以管理员权限运行编辑器才能正确修改这些文件):
<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"这些文件中的每一个都已经有运行时部分,您只需要 添加行。
请访问page cited 了解完整详情。
【讨论】:
对此的更新:在 2014 年 2 月,Microsoft 发布了一个更新,该更新破坏了 Visual Studio 产品中的宏。阅读以下链接后,我在我的 Win 7 x64 机器上卸载了KB2898869,它们又可以正常工作了。
请参阅this link 了解全文。
以下是该链接的一些内容:
.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安装 2014 年 2 月 11 日的最新 Windows 更新会破坏 Visual Studio 2010 宏功能。没有错误消息,宏就不再运行了。更具体地说,它是 MS14-009 更新“.NET Framework 中的漏洞可能允许特权提升 (2916607)”(评级为重要)破坏了宏。更具体地说,它是此更新的特权提升部分。
【讨论】:
我也遇到了同样的问题。
原来是由其中一个宏中的语法错误引起的。
【讨论】:
为了解释@JZumwalt 所说的内容,Visual Studio / 宏 IDE 拒绝运行 any 宏,即使您的 one 宏出现语法错误。
追踪此问题的最简单方法是转到 Project -> MyMacros Properties。在构建选项卡上,选中标有 Option Strict On 默认情况下 的框。接下来,滚动浏览每个模块/类并寻找蓝色波浪线。绝大多数将是无害的,例如“Option Strict 不允许后期绑定”和“Option Strict 不允许从 Foo 到 Bar 的隐式转换”。
但是当您滚动浏览时,您现在会看到一个单独的语法错误,它会阻止您运行宏。
【讨论】:
这发生在我身上,问题是整个模块底部有一个额外的 END SUB ——与我认为有问题的宏无关。
【讨论】: