无法加载DLL文件“VSPerf110.dll”

3
当我发布我的Web应用程序并勾选了发布期间预编译,在我的Web服务器上会出现以下错误:

无法加载DLL“VSPerf110.dll”:无法找到指定的模块。(来自HRESULT的异常:0x8007007E)

如果我不进行预编译,则应用程序可以正常工作。如何解决这个问题?
下面是我的发布设置:

Publish with precompile

2个回答

1
这个应用程序似乎在生产服务器上尝试使用Profiler API。 这个应用程序中可能有一些性能跟踪Profile代码需要注释或移除。
根据Visual Studio 2012的MSDN文档,"您的构建必须引用位于Microsoft Visual Studio 9 \ Team Tools \ Performance Tools目录中的Microsoft.VisualStudio.Profiler.dll库"。

http://msdn.microsoft.com/en-us/library/bb514149(v=vs.110).aspx


我试图引用Microsoft.VisualStudio.Profiler.dll,但没有成功。很久以前我在VS2012中运行了代码分析,并添加了有关抑制消息的文件。我已经将其删除了,但仍然没有成功。如何在我的代码中找到剩余的Profile代码? - Jimmy Mattsson
尝试在解决方案中进行全局查找**(Ctrl+Shift+F)**,以查找使用Profiler命名空间的所有代码文件。 - landsteven
在代码中没有找到任何内容。是否有可能是Visual Studio在预编译过程中添加的? - Jimmy Mattsson
我刚刚反编译了global.asax dll文件,然后VS添加了性能分析代码。我猜这是某个设置,我需要取消勾选它。 - Jimmy Mattsson
我找到了!在 web.config 中添加了对 Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter 和 Microsoft.VisualStudio.Enterprise.AspNetHelper 的引用。删除这些引用后问题得到解决。 - Jimmy Mattsson

1
我在Visual Studio 2015中遇到了相同的错误信息,并希望发布另一种解决方案,以帮助其他人。在我的情况下,我使用了Visual Studio的性能分析器进行了一些性能分析。然而,我从未修改过我的代码以添加对Microsoft.VisualStudio.Profiler.dll的引用。当我将文件复制到我们的测试服务器时,我收到了错误消息。
我搜索了我的代码中的“VSPerf110”,但没有找到任何内容。最后,我尝试使用单独的搜索实用程序来搜索目录中的所有文件,并找到了它:字符串“VSPerf110.dll”在其中一个已编译的dll中被发现,尽管我的代码没有改变。
为了解决这个问题,我删除了所有性能分析输出文件(这些是由Visual Studio生成的非代码文件),并对解决方案进行了清理/重建。之后,搜索字符串“VSPerf110.dll”返回0个结果。当我将重新编译的dll复制到测试服务器时,错误消息消失了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接