我创建了一个MSI包,用于将WCF服务和Web应用程序安装到Windows Server Core 2008 R2 SP1。
安装程序进程需要检查是否在此服务器上安装了运行WCF和Web应用程序所需的功能,并仅在需要时安装它们。
我相信我们需要一个自定义动作来实现这一目标。 请问,有没有人知道如何以编程方式检查和安装功能?
期待收到你们的回复。
非常感谢, 克里斯
答案 0 :(得分:1)
我找到this来检查服务器核心中已安装的所有功能。
要安装服务器功能,我使用Process类来调用dism命令。
Process.Start("dism.exe", "/online /enable-feature /featurename:IIS-ISAPIFilter");
有了这个,我可以在MSI中创建可以检查和安装服务器功能的自定义操作。
答案 1 :(得分:0)
您可以使用MsiGetFeatureState和MsiSetFeatureState功能。
请注意,这些函数使用MSI句柄,因此您无法使用EXE或安装程序类操作。您可以在此处找到自定义操作教程:http://www.codeproject.com/KB/install/msicustomaction.aspx