.Net Windows服务和InstallState文件 - 它真的需要吗?

时间:2010-04-12 19:38:50

标签: .net windows-services

我有许多托管代码Windows服务,我们使用Frameworks InstallUtil工具将其安装到服务控制管理器中。此工具在安装时创建一个新文件,扩展名为.InstallState。我已经尝试删除此文件,之后卸载仍然正常。

所以我的问题是,这个文件是什么,有什么理由我不应该删除它吗?

编辑5/3/10:真的吗?没有人知道这个文件的价值是什么?

3 个答案:

答案 0 :(得分:7)

在VS.NET中,您可以为msi项目定义自定义对话框,我使用这样的对话框来询问SQL Server地址和凭据,msi将文本框中的所有信息存储到InstallState文件中。卸载服务后,它将从InstallState文件中读取值,并删除在安装阶段创建的数据库。在我的情况下,InstallState文件是必须的,因为如果在安装后删除了文件,则卸载将失败。

答案 1 :(得分:2)

卸载过程应删除该文件。如果您使用的是自定义安装操作,则还应将其添加到卸载过程中。缺少的.installstate文件不会阻止卸载该服务。

http://adamhouldsworth.blogspot.com/2009/11/c-setup-installstate.html

http://support.microsoft.com/kb/934388

答案 2 :(得分:2)

InstallUtil.exe使用InstallState文件卸载服务/程序集。其中包含的数据仅为卸载数据。如果您还没有阅读MSDN上的简短晦涩参考,可以阅读它here

也许安装程序包会正确卸载所有内容,但如果您自己手动/脚本调用InstallUtil,我不确定服务是否会正常卸载。

这是.InstallState文件的假定值。