1

当试图安装在Windows Vista,Windows 7或Windows 2008 Server上的Visual Studio 2010中创建的Web安装项目(MSI)时,安装程​​序将失败,并出现一些通用错误。 根据http://devio.wordpress.com/2011/04/26/pitfalls-installing-web-setup-msi-on-iis-7/这是因为安装项目和IIS7之间的兼容性问题。VS2010 Web安装项目需要IIS7上的IIS6(元数据库)兼容性。应用程序的后果或其他问题?

要解决此问题,我必须在Windows配置中启用/安装IIS6元数据库兼容性。此解决方法确实解决了此问题,但提出了两个问题:

  • 这对IIS 7的功能有任何(负面)影响吗?
  • 如何通知用户运行此问题的安装,以便他或她可以采取适当的措施并安装配置数据库兼容性组件?是否可以从此安装中弹出Windows组件配置对话框,以使用户更轻松?

回答

1
  1. 我不认为这会对应用本身造成任何影响,只要它是实现通过其原生API交谈IIS7的方式。否则,如果它不支持IIS7,则必须启用IIS6兼容性。
  2. 在目标机器上搜索任何内容的标准方法是搜索注册表和文件系统。我不知道在VS安装项目中可能如何,但例如WiX具有此特殊元素(RegistrySearch,DirectorySearchFileSearch)。基本上,this post to WiX Tips and Tricks thread显示了如何在WiX中检查IIS6的兼容性,并在未启用/安装的情况下阻止安装。即使你不了解WiX,但它知道Windows Installer的概念,它可以帮助你将代码翻译成VS安装项目中类似的东西。
+0

展望WiX的,谢谢提示。看起来很有希望! – Oxymoron

0

我们似乎对我们的服务器有负面影响。 每次我们在Visual Studio中推出一个带有msi的.NET 4.0应用程序时,我们都会收到所有应用程序池的回收站,即使是那些不受安装影响的应用程序池。 显然这是IIS 6兼容性的根本原因。 (这是由微软的开发人员在回应我们关于这种支持的问题报告给我们。

同时我们也没有办法解决的时刻。这是不可能的,我们所有的安装程序转换到维克斯。

相关问题