如何在WIX中编写MVC3的启动条件?

问题描述

| 我在VS2010中有WIX部署项目。我的应用程序需要安装MVC 3.0。 问题是如何在安装程序中创建启动条件,以便检查服务器上是否存在MVC3? 这看起来是一个简单的问题,但是我知道的所有方法都存在问题: 1)使用标准属性检查应用程序安装(在http://weblogs.asp.net/jacqueseloff/archive/2009/04/17/detecting-asp-net-mvc-1-0-using-wix.aspx中显示):
<Condition Message=\'ASP.NET MVC 3.0 is required to proceed with the installation.\'>Installed OR ASP_NET_MVC_3_0</Condition>
它总是评估为false的问题。也许没有这样的属性“ ASP_NET_MVC_3_0”。 更不用说它甚至在MVC1.0检查的示例中也不起作用。 2)手动RegistrySearch WIX条件。 这里的问题是因为我还没有注册表节点 HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ ASP.NET \\ ASP.NET MVC 3 这是第二个问题:为什么错过了?我肯定已经安装了MVC 3。以及之前的Mvc 1.0和2.0,但是ASP.NET分支下没有任何MVC节点(只有2.0.50727.0和4.0.30319.0子项)。 3)FileSearch查找MVC dll。
   <Condition Message=\'ASP.NET MVC 3.0 is required to proceed with the installation.\'>
     Installed OR ASP_NET_MVC_3_0_DLL
   </Condition>

   <Property Id=\'ASP_NET_MVC_3_0_DLL\'>
     <DirectorySearch Id=\'MVC_DLL_DIR\' Path=\'[ProgramFilesFolder]\\Microsoft ASP.NET\\ASP.NET MVC 3\\Assemblies\'>
       <FileSearch Id=\'MVC_DLL_FILE\' Name=\'System.Web.Mvc.dll\' MinVersion=\'3.0.20105.0\'/>
     </DirectorySearch>
   </Property>
但是不能保证MVC位于程序文件中-可以将其安装在其他位置。 我认为最好的答案将是为什么MVC安装没有进行注册表输入以及如何防止服务器出现这种情况。但是,针对主要问题(启动条件)的任何其他解决方案都将有所帮助。 PS:我的操作系统是Windows 7。     

解决方法

第一个选项需要第二个选项(第一个)。您链接到的博客条目缺少该步骤。您将需要一个
RegistrySearch
元素,例如:
<Property Id=\"ASP_NET_MVC_1_0\">
   <RegistrySearch Root=\"HKEY_LOCAL_MACHINE\" Key=\"SOFTWARE\\Microsoft\\ASP.NET\\ASP.NET MVC 1.0\" Name=\"InstallPath\" Type=\"raw\" />
</Property>
然后,应该填充您的媒体资源。如果缺少注册表项,则需要跟程序包的所有者进行跟进,以了解为什么未写入其注册表项。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...