c# - Visual Studio 2017 中的 Windows Installer 项目

标签 c# deployment visual-studio-2017

我一直在学习如何部署使用 Visual Studio 2017 构建的各种应用程序类型(例如控制台应用程序、Windows 服务应用程序、Windows 窗体、wpf 等)。

特别是我正在查看我所理解的所谓安装和部署项目或 Windows Installer 安装项目:https://msdn.microsoft.com/en-au/library/wx3b589t(v=vs.100).aspx

起初我无法在 Visual Studio 2017 中找到安装和部署项目。但是我找到了 Microsoft 的 Visual Studio 扩展名为 Microsoft Visual Studio 2017 Installer Projects https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects

安装 Visual Studio 扩展后,我可以在“添加新项目”窗口中的“其他项目类型”下找到 Visual Studio 安装程序。但是,我无法为项目成功构建安装程序。

在不同的场合和使用标准默认 Windows 窗体项目或默认控制台应用程序的不同解决方案,当我在解决方案资源管理器窗口中右键单击安装项目并选择构建时,会发生以下情况:

  1. 与 SQL Management Studio 相关的对话窗口出现如下内容

    Windows 正在配置 SQL Server 2008 R2 SP2 Management Studio,请稍候。

  2. 在该对话窗口的顶部会出现另一个对话窗口:

    0:沃森 1:1304 2:STreamSupportFiles 3:streamBinaryToDisk 4:5 5:e:\sql10_main_t\sql\setup\darmwin\sqlcastub\streamca.cpp 6:238 7:sqlcastub.dll 8:sqlrun.msi

    和一个确定按钮。

  3. 如果我在 2 中标识的对话框上按下确定按钮,我最终会看到一个标题为 SQL Server 2008 R2 SP2 Management Studio 的对话框。窗口内容为:

    写入文件时出错:访问被拒绝。 确认您有权访问该目录。 窗口中出现确定按钮。

我不确定“那个”目录在这种情况下实际指的是什么,因为它不是预期的。

  1. 如果我在对话框窗口中单击“确定”,我会看到一个 Windows Installer 对话框窗口,其中包含消息“准备安装”和一个取消按钮。

  2. 经过很长一段时间似乎什么也没有发生,并且 Visual Studio 主窗口现在(没有响应)作为其标题的一部分,我最终最终单击了 Windows 安装程序对话框上的取消按钮。这会导致安装程序卡住并最终导致 Visual Studio 崩溃或变得无响应,以至于我最终使用任务管理器终止了它。

我观看了一个视频,其中有人为 Windows 服务构建了一个安装项目,但我在任何阶段都没有看到与 SQL Server 相关的 Windows 或 Windows Installer 准备安装窗口。我没想到会收到任何提到的窗口,也没想到 Visual Studio 会变得无响应并基本上崩溃。

我转到工具 > 选项 > 项目和解决方案并将 MS 构建输出和日志详细程度更改为诊断,但没有找到与 SQL Server 2008 相关的任何内容。

是否有人对可能导致此问题的原因以及我该如何解决有任何想法?

此外,我是否应该查看其他一些用于部署目的的解决方案/工具而不是安装和部署项目?考虑到问题的性质,而不是仅仅停留在这个问题上,也许还有其他一些问题: 1. Setup 和 Deployment 项目是否仍然是其他开发人员积极使用的工具/解决方案?如果是这样,它们是否被广泛使用?或者它们相对于其他部署技术/工具/解决方案的使用范围如何?

最佳答案

通过运行以下命令在 x64 系统上解决了该问题:

regsvr32.exe /u "C:\Program Files (x86)\Common Files\microsoft shared\MSI Tools\mergemod.dll"
regsvr32.exe "C:\Program Files (x86)\Common Files\microsoft shared\MSI Tools\mergemod.dll"

关于c# - Visual Studio 2017 中的 Windows Installer 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44907844/

相关文章:

java - com.google.api.client.auth.oauth2.TokenResponseException : 400 Bad Request (Eclipse)

c# - 遍历数据集

deployment - 为什么这么多程序同时具有 setup.exe 和 setup.msi?

c# - 如何对自定义类数组进行排序?

maven - 我如何 : Deploy multiple instances of a Mule ESB app in the same environment (same version, 多个实例)

visual-studio - Resharper 安装未检测到 VS 2017

git - 从 Visual Studio 2017 使用 git 克隆时出现 "Illegal characters in path"

C# SQL 查询输出到 Excel 不包括输出中新添加的字段

c# - 什么时候应该关心在开始下一个方法之前完成一种方法?

c# - System.Linq.Enumerable.Max 的 Mono 之间的模糊调用