我有一个Web应用程序项目,我通过Visual Studio 2010发布到我的服务器上。问题是在实际发布之前可能需要很长时间,也许10分钟!这并不是每次都发生,但非常频繁。
以下是我尝试发布时在 输出->生成 控制台中的摘要:
- 项目正在编译 - OK
- 连接到C:\Users\{user}\Desktop\MyProjectTest...(这里可能需要长达10分钟)
- 正在发布文件...
Process Explorer
当我打开ProcessExplorer时,我看到devenv.exe
占用了所有CPU。当我打开此进程时,我看到消耗所有CPU的任务为clr.dll!StrongNameSignatureVerification+0x11ee1
。此任务完成后,大约10分钟后,发布任务会快速完成。
Process Monitor
使用Process Monitor,我已经监视了clr.dll!StrongNAmeSignatureVerification的TID,并且我有许多冗余事件。五分钟以上,该任务尝试访问我电脑上没有的文件。他正在搜索Microsoft.Build.Task.resources.dll
。就好像发布任务一遍又一遍地尝试着不存在的东西。供您参考,我正在使用Windows 7 French和Visual Studio 2010 English。在屏幕截图中,您可以看到大约2000个事件中的10个相同事件!
关于我的设置的更多信息
以下信息有助于确定问题:
- 我的应用程序是使用MVC3构建的
- 我有几个第三方的dll库,其中一些是签名的
- 我使用文件系统方法进行发布
- 我尝试在本地计算机上发布,但问题依然存在,因此这不是我的计算机和服务器之间的网络问题
- 我已在Windows 7 x86和x64法语版上进行了测试
- 我的Visual Studio 2010 SP1是英文版
更新 2011-09-23
我现在知道如何解决这个问题但是我不知道是什么原因导致的。如果我删除 **.suo 文件(与 .sln 文件处于同一级别),然后重新打开 Visual Studio,则发布将非常快速。因此,在每次发布变慢时重新初始化 .suo 文件似乎可以解决该问题。
为了进行另一个测试,当发布变慢时,我备份了 .suo 文件并将其删除。现在发布很快。如果我将 .suo 文件复制回原来的位置并重新打开 Visual Studio,则发布将再次变慢。因此,所有的迹象似乎指向了那个文件。
对此有什么想法吗?