我在MSI安装程序中使用Squirrel安装程序。MSI安装程序调用Squirrel安装程序。由于MSI安装程序将在“添加/删除程序”中包含该条目,因此我希望删除(或不创建) Squirrel安装程序创建的条目。
我所做的是在onFirstRun的事件处理程序中使用RemoveUninstallerRegistryEntry,但它给出了以下错误:
Couldn't write uninstall icon, don't care: System.IO.IOException: Illegal operation attempted on a registry key that has been marked for deletion.基于这个错误,我觉得我在一个错误的位置删除了卸载程序条目。应该在哪里删除卸载项?或者有没有办法从一开始就阻止Squirrel创建这些条目?
发布于 2017-01-03 00:15:03
国际海事组织你制造了一个“特洛伊木马”微星您可以在MSI中设置ARPSYSTEMCOMPONENT属性,它不会显示在“添加和删除程序”中。但老实说,您可能根本不希望MSI在系统中自行注册。在这种情况下,从安装程序中删除某些关键的标准操作,如PublishComponents、PublishFeatures和PublishProduct。
发布于 2017-11-09 00:27:29
无论您是否应该这样做,您都可以修改Squirrel,使其永远不会创建注册表项。只需注释掉对CreateUninstallerRegistryEntry的调用或注释掉this file中的函数。只需重新构建squirrel并将nuget中的引用替换为您的自定义版本,这就足够简单了。
只要您使用应用程序的较大部分引导squirrel,我就不认为这样做有任何问题。
https://stackoverflow.com/questions/41413017
复制相似问题