我有许多托管代码Windows服务,我们使用Frameworks InstallUtil工具将其安装到服务控制管理器中。此工具在安装时创建一个新文件,扩展名为.InstallState。我已经尝试删除此文件,之后卸载仍然正常。
所以我的问题是,这个文件是什么,有什么理由我不应该删除它吗?
编辑5/3/10:真的吗?没有人知道这个文件的价值是什么?
答案 0 :(得分:7)
在VS.NET中,您可以为msi项目定义自定义对话框,我使用这样的对话框来询问SQL Server地址和凭据,msi将文本框中的所有信息存储到InstallState文件中。卸载服务后,它将从InstallState文件中读取值,并删除在安装阶段创建的数据库。在我的情况下,InstallState文件是必须的,因为如果在安装后删除了文件,则卸载将失败。
答案 1 :(得分:2)
卸载过程应删除该文件。如果您使用的是自定义安装操作,则还应将其添加到卸载过程中。缺少的.installstate文件不会阻止卸载该服务。
http://adamhouldsworth.blogspot.com/2009/11/c-setup-installstate.html
答案 2 :(得分:2)
InstallUtil.exe使用InstallState文件卸载服务/程序集。其中包含的数据仅为卸载数据。如果您还没有阅读MSDN上的简短晦涩参考,可以阅读它here。
也许安装程序包会正确卸载所有内容,但如果您自己手动/脚本调用InstallUtil,我不确定服务是否会正常卸载。
这是.InstallState文件的假定值。