Deployment 是否使用安装包从客户端计算机在网络共享上部署文件?

Deployment 是否使用安装包从客户端计算机在网络共享上部署文件?,deployment,wix,client-server,Deployment,Wix,Client Server,我们有一个经过15年开发的大型应用程序,安装在200多个客户端位置。该应用程序目前由一个Access数据库和一组位于网络共享上的可执行文件和报告文件组成。在每台客户机上运行Setup.EXE文件(客户机上安装了DLL),然后客户机直接从网络共享运行可执行文件。在我们的升级过程中,新的可执行文件和报告文件被复制到网络共享中,这样每个客户端都会立即得到更新 我们当前的安装程序非常旧,除其他外,它不处理x64,因此我们正在迁移到一个新的部署工具。同时,我们正在将客户端访问数据库迁移到SQL Serve

我们有一个经过15年开发的大型应用程序,安装在200多个客户端位置。该应用程序目前由一个Access数据库和一组位于网络共享上的可执行文件和报告文件组成。在每台客户机上运行Setup.EXE文件(客户机上安装了DLL),然后客户机直接从网络共享运行可执行文件。在我们的升级过程中,新的可执行文件和报告文件被复制到网络共享中,这样每个客户端都会立即得到更新

我们当前的安装程序非常旧,除其他外,它不处理x64,因此我们正在迁移到一个新的部署工具。同时,我们正在将客户端访问数据库迁移到SQL Server。我很难找到一个部署工具来满足我们的需求。具体而言,我们需要安装/升级文件来执行以下操作:

  • 它必须能够从网络上的客户机运行,并将新的可执行文件和报告文件复制到网络共享。这种共享可能是Linux机箱或哑存储设备
  • 在运行安装之前接受密码
  • 允许用户选择网络共享作为复制可执行文件的位置
  • 它必须向运行包的客户机添加任何内容(添加/删除程序、注册表等)
  • 连接到SQL Server数据库并运行脚本
  • 安装/升级必须包含在单个独立的.msi或.exe文件中。(除Windows XP附带的DLL或框架外,不依赖其他DLL或框架)
  • 该文件必须能够在一个简单的步骤中运行。最终用户在没有我们的支持和参与的情况下运行升级
  • 看起来最接近我需要的是WiX,但问题是每当从客户端运行.msi文件时,客户端计算机都会认为正在安装程序,因此允许客户端计算机卸载该产品,这是不可接受的


    如果该产品是在今天编写的,它的架构肯定会有所不同,但它目前就是这样,我们无法改变这一点。任何帮助都将不胜感激

    WiX只是一个建立在技术之上的工具集。它使许多事情变得更容易和更简单,同时隐藏了许多Windows Installer奇怪的功能。。。但是,它仍然受到其底层技术Windows Installer的限制


    你的需求清单让我觉得Windows Installer不是合适的技术选择。我假设您将在变通方法上花费比在函数代码上更多的时间。。。但我没有其他安装技术的经验,因此我将把这些建议留给其他人。

    感谢您的回复。似乎我需要一个像xcopy这样的工具,它还可以做其他事情,比如允许用户选择安装位置、输入SQL Server连接信息和执行SQL脚本。