我已经用x-copy部署了我的.NET程序集多年,没有任何问题。 从上周开始,我们有一个小团队,其任务是构建包括 .NET程序集和exe和C++遗留exe和dll(更多200个文件)的设置。 第一次安装后,我的wpf应用程序出现问题:启动时间非常长。 我已经通过procmon 描述了我的一个wpf应用程序(ps:.NET程序集是GACed和NGened),我已经看到该进程对所有其他无关(> 200)文件和I认为 这是导致应用程序启动时间过慢的主要原因。 这与.NET发布者策略有关吗?我如何禁用这种行为,使我的应用程序再次快速? 在此先感谢!由于发布策略导致wpf启动缓慢......也许
0
A
回答
1
那痕迹集似乎与基于“公布” COM类COM实例。在不了解MSI如何组织成功能,组件和COM注册的情况下,很难完全确定。
但无论如何,如果COM类使用MSI文件中的类表注册,那么它们有一个名为Darwin描述符的InprocServer32注册表值(不是关键字)。它通过功能名称,产品代码和组件代码引用了COM实例化的目标,这可能是您看到对注册表中的Windows Installer功能和组件键的引用的原因。通常使用该描述符调用MsiProvideComponent,如果发生任何问题,将导致恢复检查和修复。
你不说你使用什么工具,但如果你有大量的COM注册的这一切都通过注册在MSI的Class表广告,可能是这个问题。不知道你使用什么工具来构建MSI并查看MSI文件,这很难确定。但WiX的,例如,您可以使用类表登记,但使用广告=没有,而且在登记结果使用注册表项,这是相当明显的其他方式来创建COM注册,同时避免广告/弹性的检查正在进行。
另外,也许最重要的是,您需要确保您的产品安装实际上并未在启动时自行修复 - 这会让它变慢很多!例如,如果安装后删除了任何文件或注册表项,则可能会引入修复。查找MsiInstaller事件日志条目,在应用程序事件日志中引用缺少的组件。
相关问题
- 1. 许多协会导致查询缓慢
- 2. 由于使用'it'而导致的(Num(也许a0))的实例
- 3. MVC3发布策略
- 4. Websockets问题,也许是同源策略?
- 5. 存在新对象的缓存策略导致缓存失效
- 6. 由于数据绑定导致的缓慢页面转储
- 7. Apache Camel缓慢启动路由
- 8. iPhone imageView层masksToBound导致缓慢滚动
- 9. 需要关于发布管理策略的建议或指导
- 10. PHP:导致缓慢的SESSIONS
- 11. Hazelcast缓慢启动
- 12. 分支和发布策略
- 13. 发布分支策略
- 14. 缓存策略
- 15. 从服务启动对话活动导致'MainActivity'也启动
- 16. Visual Studio - 快速发现缓慢启动
- 17. IAM策略未启动
- 18. 由于休眠状态,Tomcat慢启动
- 19. 许多并发读取+一个写入导致ObjectHotFoundException由于ehcache
- 20. 从Java启动C#WPF会导致FileNotFoundExceptions
- 21. Docker-compose重启策略导致日志被削减
- 22. 导入许多scss文件的策略
- 23. Akamai缓存策略
- 24. NSURLRequest缓存策略
- 25. iOS缓存策略
- 26. ServiceStack缓存策略
- 27. 缓存策略,AFNetworking
- 28. C程序启动缓慢
- 29. IronPython启动非常缓慢
- 30. JBoss 7.1启动缓慢
@PhilDW您好,感谢您详细的解答。今天我得到了新闻,我的设置团队使用Install Shield创建msi文件。 Install Shield中有一些选项可以避免上述问题? – laertes
我不知道,对不起,你需要看看是否有使用像“非广告的COM注册”或“使用注册表,而不是Class表”条款的选项。 – PhilDW