【发布时间】:2012-01-20 20:43:12
【问题描述】:
有没有人使用 WiX 为 ASP.Net MVC 网站生成安装程序?您是否从 Web 项目中获取文件?我找不到任何这样做的好例子。似乎没有记录的方式来包含所有正确的文件,只有正确的文件并将它们放在正确的位置。
如果在安装程序项目中添加网站项目作为引用,并在属性中设置harvest=True,则所有网站文件都被捕获,但有问题:
- 包含一些不应复制的文件,例如
packages.config、Web.Debug.config似乎没有任何明确或简单的方法可以排除它们(as per this discussion)。 - .website dll 文件位于错误位置,位于根目录而不是 bin 文件夹 (as per this discussion)
但是,如果您不使用收获,则需要手动引用很多文件(例如,仅在 \Content\ 下,我在 5 个文件夹中就有 58 个文件。其中大部分是 jQuery UI)并且它们会不时更改, WiX 文件列表中很容易遗漏错误和遗漏。所以它确实应该自动保持同步。
我不同意应该在 WiX 中明确指定文件列表而不是动态生成的想法(这似乎是第一个链接所建议的,措辞不是很清楚)。如果我需要从源代码控制系统中删除我将删除的文件,则无需进行额外的工作来维护两个并行但不同的目录——源代码控制中的一组文件,以及 WiX 中列出的相同文件。真相应该有一个版本。网站源代码树中的所有文件(除了某些在运行时不使用的已知异常,例如packages.config)都应包含在部署中。
出于公司原因,我没有太多选择在此项目中使用 WiX
【问题讨论】:
-
好吧,我不同意你不同意。顺便说一句,这里真的有问题吗?多年来,我编写了数百个安装程序,其中许多是多实例 n 层解决方案,包括 ASP.NET Web UI 和服务。我编写了自动化程序来交叉检查我的安装程序使用的内容和我的项目发布的内容是否相同。添加某些内容时,将文件添加到我的安装程序对我来说是微不足道的,最好的事情是我知道它是完美地完成的,而不是自动魔术。 (展开并祈祷。)
标签: asp.net-mvc wix installation