VS2013无法启动性能分析工具的一种情况

来源:互联网 发布:淘宝三星店铺 编辑:程序博客网 时间:2024/05/19 23:25

今天尝试使用VS2012自带的性能分析工具,结果发现报错:“启动性能分析”会报错“0x80070002系统找不到指定的文件”,利用价值不大;“启动性能向导”并完成后报错“could not load file or assembly 'VSPerfControl.Interop...”,搜索该报错信息可以看到stackoverflow上的一个问题。以下为对该问题回答的实际操作经验,并不知道原理。
根据回答,该问题应该是由于VS没有安装在默认文件夹,我的状况也的确如此。一种解决办法是重新安装VS到默认文件夹。另外一种解决办法由Lucas Moreira给出,不需要重装程序。如果了解相关基础知识,第二种解决办法是很快的;然而我并不了解,所以花费了一些时间尝试。我的状况为Win7+VS2012。


1、在VS的安装文件夹\Team Tools\Performance Tools中找是否有VSPerfControl.Interop.dll,如果没有,则到VS安装包文件夹\Standalone Profiler中找Profiler_Setup可执行文件,选择合适版本安装。
2、将C:\Program Files (x86)\Microsoft SDKs\Windows下的gacutil.exe和gacutil.exe.config两文件拷出来,放到VSPerfControl.Interop.dll所在文件夹。
3、以管理员身份运行系统的cmd.exe,在命令提示行中输入:cd C:\Program Files\Microsoft Visual Studio 12.0\Team Tools\Performance Tools,回车运行;然后输入gacutil /i VSPerfControl.Interop.dll,回车运行。没有报错信息,则问题解决。


在第2步中Lucas Moreira建议以管理员身份运行VS的开发人员命令提示工具,但是我不知道如何实现。在开始菜单-所有程序-VS-VS Tools中可以找到该工具,但右键菜单中没有“以管理员身份运行”选项,我的电脑不知道为何为什么,runas管理员操作总反馈密码错误;如果选择“打开文件位置”,会发现跳到系统自带的cmd.exe程序;根据MSDN在VS安装文件夹\Common7\IDE中找到的是一个bat文件,右键管理员运行并没有什么用。在VS-工具中或在开始菜单中进入开发人员命令提示工具,都不是管理员身份,之后运行指令会报错。
因此,我最后是直接用系统本身的cmd,以管理员身份运行。由于系统cmd不像VS的开发人员命令提示工具一样有内置路径(环境变量?渣渣表示不懂。),无法识别gacutil指令。参考奋斗的小壁虎的CSDN博客“安装VS2008的Win7:gacutil.exe、sn.exe 所在位置及如何使用gacutil.exe注册强命名程序集至GAC中”,需要先将C:\Program Files (x86)\Microsoft SDKs\Windows下的gacutil.exe和gacutil.exe.config两文件拷出来,放到VSPerfControl.Interop.dll所在文件夹。
在第3步中Microsoft SDKs/Widows内可能有几组gacutil.exe和gacutil.exe.config,对于错误的文件,操作会报错“生成此程序集的运行时比当前加载的运行时新”。我最后是使用Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64中的文件。
另外,关于cmd,可能有默认路径为system32,或其他。输入指令“cd..”,可以进入上一级文件夹;输入cd+路径 可置之为当前路径。cd指令中路径含空格无影响,个人感觉比双引号、缩写等处理空格的方法更简单。