我正在尝试对这种情况下的普遍性建立一个普遍的了解,以便我可以决定进一步进行下去是否有意义。
- 在具有以下特征的典型公司环境中是否欢迎安装程序?
- 变更控制程序
- 开发/质量保证/生产环境
- 在各个领域(防火墙,数据库,窗口等)的指定部署团队。
- 是否可以将“石蕊试纸”应用于应用程序,以查看它是否是创建安装程序的理想选择?*
- 安装程序是否足够简单,每个应用程序都应该有一个?
- 安装人员甚至是正确的工具吗?
- 期望开发人员学习诸如WiX之类的东西来支持安装程序是否合理?
- 一般而言,可维护性是一个问题,例如,创建安装程序是否是利基技能?
*
例如,我在生产服务器上的共享目录中有一组winform应用程序。特定的组可以从此目录运行应用程序,但是只有系统管理员才能修改可执行文件。当前的部署过程包括让管理员将可执行文件和库复制/粘贴到共享目录。
由于应用程序未安装在个人用户的计算机上,因此创建一个安装程序以将这些应用程序的新版本部署到共享目录是否有意义?
编辑 -
我觉得这里的答案提供了扎实的建议,所以我想分享我为当前项目提出的想法,在这个项目中我需要构建大量应用程序并将它们部署到单个文件夹中。
我找到了一个名为_PublishedApplications的NuGet程序包,该程序包模仿了Web项目的_PublishedWebsites的行为。想法是将NuGet软件包安装到项目中,并添加一个目标,该目标会将构建工件复制到输出路径中的_PublishedApplications目录中。通过从命令行运行MSBuild并指定outdir
属性来激活此行为:
msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln
这将为您提供类似于以下内容的目录结构:
- C:\ path \ to \ outdir
- _PublishedApplications \
- 专案1 \
dlls, exes, etc.
- 专案2 \
...
- 专案1 \
- _PublishedApplications \
从那里创建一个可以在各种环境中提取的zip相当简单。
.msi
安装程序吗?这些至少可以完全自动化,并且痛苦最小。(尽管对于偶尔需要自己更新的用户还是很容易理解的)