是否有人使用WiX为ASP.Net MVC网站生成安装程序?您是从Web项目中收集文件的吗?我找不到任何好的例子。似乎没有文件记录的方法来包含所有正确的文件,只包含正确的文件并将它们放在正确的位置。
如果您在安装程序项目中添加网站项目作为参考,并在属性中设置harvest=True
,则会捕获所有网站文件,但存在问题:
packages.config
,Web.Debug.config
似乎没有任何明确或简单的方法可以排除它们(as per this discussion)。但是如果你不使用收获,你手动引用很多文件(例如,仅在\Content\
下我在5个文件夹中有58个文件。大多数是jQuery UI)它们随时间变化从WiX文件列表中很容易错过时间,错误和遗漏。所以它确实应该自动保持同步。
我不同意这样的想法,即文件列表应该在WiX中明确指定而不是动态生成(这似乎是在第一个链接上建议的,措辞不是很清楚)。如果我需要删除一个文件,我将从源控制系统中删除,不需要做额外的工作来维护两个并行但不同的目录 - 源代码管理中的一组文件,以及WiX中列出的相同文件。应该有一个版本的事实。网站源代码树中的所有文件(包含某些未在运行时使用的已知异常,例如packages.config
)都应包含在部署中。
出于公司原因,我没有太多选择将WiX用于此项目
答案 0 :(得分:4)
在我们的MVC 3项目中,我们使用Paraffin来收集安装程序的文件。例如,您可以使用“-ext”忽略带扩展名的文件,使用“regExExclude”忽略与正则表达式匹配的文件名等。
石蜡还保留了正确的结构,所有文件都将放在项目中显示的正确文件夹中。
答案 1 :(得分:2)
我使用我编写的一个名为ISWIX的程序,它使创作wxs合并模块成为一个简单的拖放操作,如InstallShield。然后,我在处理UI和IIS配置的安装程序中使用该合并模块。
我还有postbuild自动化,它提取MSI的内容并将其与项目发布的内容进行比较。如果存在增量,则构建失败,您必须a)将其添加到wxs或b)将其从发布中删除。
我发现从构建到构建的文件计数流失很小,并且该系统不难维护。好处是一切仍然是100%有意创作,文件不会神奇地添加或删除安装程序,除非你打算他们。动态安装程序生成不值得冒险,大多数人认为它甚至不知道这些风险是什么。