在VS 2010中,C#项目出乎意料地构建缓慢

5
我正在处理一个相当简单的C#解决方案,其中包括两个项目:一个类库和一个安装程序。构建类库本身只需要大约一秒钟的时间。然而,构建安装程序需要不可预测/极长的时间。更有趣的是,在编译过程中,CPU似乎会“休息”,将一个核心峰值提高5到10秒,然后几秒钟内接近0。
安装程序项目非常简单。它只是类库的输出(一个单独的DLL,大约2MB)和一些注册表键。
有什么想法是什么原因导致这种情况?!

你有构建输出吗? - Iain
你能提供构建过程的输出吗?没有更多信息很难猜测。 - Paul Sasik
可能相关:http://connect.microsoft.com/VisualStudio/feedback/details/635358/visual-studio-deployment-projects-are-slow-to-build-and-dont-take-advantage-of-multiple-cpus - keyboardP
我在发帖的同时又开始构建,但是出现了“无法恢复的构建错误”——没有详细信息。正在进一步调查…… - svidgen
可能有所帮助的博客文章:http://blogs.msdn.com/b/rajnishkaushik/archive/2007/11/19/unrecoverable-build-error-while-building-setup-deployment-project-in-visual-studio.aspx - keyboardP
3个回答

0
我们曾经遇到过这个问题,发现msi构建过程会在c:\Documents and Settings\username\Local Settings\Temp文件夹中创建vsi*.tmp文件,但是这些文件没有被清理,随着时间的推移会越来越多。存在的这些文件越多,msi创建所需的时间就越长。我们通过使用定期任务来删除任何超过24小时的文件来解决了这个问题。
注意-对于我们的情况,服务器是Windows Server 2003 R2-因此有c:\Documents and Settings前缀。如果您使用的是Windows Vista或Windows 7,则可能会在c:\Users\username下搜索vsi*.tmp文件。

0
如果有人在谷歌上搜索到这个问题,而其他解决方案似乎都不能解决你的问题,就像我一样,你把工作放在了一个 USB 驱动器上……不要使用 USB 驱动器。虽然你只需要在 TFS 中设置一个工作区,然后拖动 USB 驱动器,但这并不值得。只需在本地驱动器上创建另一个工作区,并在需要时才使用 USB 驱动器。

0
经过一段时间的尝试,我发现将注册表设置更改为不注册COM,而是让DLL构建执行注册,安装程序构建变得更加可靠(并且更快)。我不确定这是否构成了解决方案,因为COM注册应该可以正常工作。但是,至少我已经能够解决这个问题。

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