我知道关于同样的信息有很多问题。我都看完了,但我的大脑都在转,我不知道该往哪边走。再加上缺乏文档真的很痛苦。
这是我的场景。我们正在尝试使用 WIX 为我们的应用程序创建一个安装程序,该安装程序会发送给我们的经销商以获取我们的产品信息。该应用程序包括我们产品的大约 2000 张图像和文档,以及通过 Microsoft Sync Framework 更新的 SQL CE 数据库。数据变化如此频繁,以至于将这 2000 个作为内容文件保留在应用程序的项目中是非常不可取的。该应用程序依赖于 .NET Framework 3.5 SP1、SQL Server CE 3.5、Microsoft Sync Framework 1.0 和 ADO.NET Sync Services 2.0。
以下是应用程序的要求:
- 对于任何更新(应用程序或数据更新),经销商每年都会收到一张 CD 上的应用程序。
- 该应用程序必须从互联网进行自我更新,以获取任何新的图像、文档或数据。
- 如果客户端计算机上不存在必备项,则必须安装这些必备项。
- 完整的安装程序应该从 MSBuild 脚本生成,尽可能少的人工交互(我们不希望手动更新 2000+ 文件列表)。
到目前为止,我们已经完成的是我们的解决方案中有一个 Votive 项目。我们在 .wxs 文件中手动指定了二进制文件。Web 已修改 .wixproj 文件以使用 HeatDirectory 任务从指定位置收集我们的数据(图像、文档和数据库)(这已损坏并给出 ICE38 错误)。这似乎没问题,但仍然需要大量工作。我们必须通过在发布模式下运行程序并将其复制到指定目录来手动更新我们的数据。
我想看看其他人在这种情况下会做什么。
- 对于 2000 多个数据文件,您将如何安排您的解决方案?您会创建一个从服务器获取当前数据的自定义构建脚本,还是将它们作为内容文件包含在主项目中?
- 您如何让 WIX 包含所有项目输出(包括引用的程序集)和所有数据文件?如果你有完整的样品,那就太好了。我所找到的只是到处都是小片段,而不是从头到尾的完整示例。
- 您将如何处理版本号?您会将它们作为常量放在构建脚本中并通过 $(var.VersionNumberName) 引用它们吗?您是否会从正在部署的项目中自动获取版本号?如果是这样,如何?
如果有比我发现的更好的信息,请包括。我已经阅读了许多文章、博客、Stackoverflow 问题、教程、wiki 等。一切似乎都是零碎的。该教程很好,但没有解释有关 MSBuild 和 Votive 的任何内容。我希望看到有关使用 MSBuild 和 Votive 以及所有 WIX MSBuild 目标的从头到尾的教程。如果没有人知道这样的教程,我可能会放在一起。我已经花了整整一周的时间来收集信息和阅读。我也是 MSBuild 的新手,所以如果有人有任何关于 MSBuild 的精彩文章,请包括在内。