如何解决如何在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>
然后,应该填充您的媒体资源。如果缺少注册表项,则需要跟程序包的所有者进行跟进,以了解为什么未写入其注册表项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。