问题标签 [wixsharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2206 浏览

msbuild - 如何使用 WixSharp 安装网站并关联 AppPool

我正在尝试查找有关如何使用WixSharp(WiX 的托管代码接口)安装网站并关联 AppPool 的示例。

我想要实现的步骤是:

  1. 如果该网站存在于 IIS 6 中,请将其删除。
  2. 如果 IIS 6 中存在 AppPool,请将其删除。
  3. 从目标目录中删除应用程序工件。
  4. 将新的应用程序工件复制到目标目录。
  5. 创建应用程序池。
  6. 创建网站,将其链接到 AppPool。

我在 MSBuild 中实现了这一点,但这不如 MSI 有用。因此,我试图用 WixSharp 语法“重写”上述内容。

WixSharp 显然支持 WIXIISExtension,但 Google 尚未提供任何示例。

我将如何在 WixSharp 中编写上述代码?

0 投票
1 回答
786 浏览

continuous-integration - msbuild EXE 项目的构建和部署自动化

我正在进行一些自动构建更改,并且对构建/打包 EXE 应用程序的最佳方法有一些疑问。

从概念上讲,有两个脚本。第一个构建所有内容,将生成的二进制文件放在一个共享上,以便它们可用于部署。第二组脚本分别负责从该构建结果中复制和配置某些应用程序。

第一个脚本构建整个解决方案,通过覆盖 msbuild 输出路径将构建结果复制到已知的拾取位置。这会导致所有的二进制文件都放在同一个文件夹中(Web 应用程序除外,其中每个项目都位于 _PublishedWebsites 下的自己的网站中)。这是有问题的,因为当我为单个 EXE 项目构建安装程序时,我只想包含该 EXE 的 EXE 和依赖项。但是,由于所有项目输出都在同一个文件夹中,因此不清楚各个应用程序需要哪些。

鉴于构建已将所有可执行文件的二进制文件放在一个文件夹中,我如何构建一个仅包含特定 EXE 所需二进制文件的 MSI?

我使用 psake/powershell 构建脚本,使用 msbuild 编译解决方案文件。我正在使用 WixSharp 从命令行应用程序(不是 CSC)构建安装程序。

0 投票
3 回答
1188 浏览

wixsharp - 如何使用 WixSharp 创建 Internet 快捷方式

我正在使用 WixSharp 来组装一个安装程序。我想在 Program Files\ 菜单中有一个快捷方式来打开网页。我可以用 WixSharp 做到这一点吗?

0 投票
2 回答
7750 浏览

wix - Wix 的体验#WixSharp 与 WiX 的比较

我们正在使用 Inno Setup,并计划用 WiX 替换它。但是在评估和使用 WiX 时,我觉得声明方式与编程设置解决方案相比存在一些局限性。

此外,我发现 WiX 文档相当稀疏。所以我遇到了 Wix# (WixSharp),它承诺通过用 C# 编写的脚本文件以编程方式创建 WiX 源代码。

然而,我们在非常小的公司甚至“单人秀”中也有过一些负面的经历。因此,我只想询问您使用 Wix# (WixSharp) 甚至其他不错的替代品的经验。你能报告一些优点或限制吗?

0 投票
2 回答
704 浏览

wix - 与 WixSharp 等效的 vsdrfCOMSelfReg

我正在尝试使用 WixSharp 重新创建旧版安装程序的功能。在旧版安装项目中,一些第三方 DLL 被标记为“vsdrfCOMSelfReg”。 我在很多地方都看到过你可以添加到 File 标签中SelfRegCost="0",但它是非常不受欢迎的。

如何使用 WixSharp 正确注册 COM DLL?有没有办法从 WixSharp 将 SelfRegCost 字段添加到 DLL 的文件标签?

0 投票
2 回答
1129 浏览

c# - 在 Wix# 中,仅部署注册表项时,如何避免在目标系统上创建物理文件夹?

我有几个相关的 Windows 注册表项,我想将它们打包在 MSI 中,以便 1) 有一个卸载过程,以及 2) 这些注册表项已应用于给定计算机的事实由添加/删除程序条目记录.

问题是我可以让 Wix# 很好地做到这一点,但如果所有注册表项都在“Dir”块内,我只能让 MSI 构建,并且最终实际上创建了一个物理文件夹,我不这样做不想要,在目标系统上。

作为一种临时解决方法,我最终使用了 Dir 块,指定了一个虚拟的“Temp”文件夹。安装程序实际上确实创建了我不想要的文件夹;我想要的只是应用注册表项。

WiX 文档将其底层结构 TargetDir 描述为本质上告诉安装程序在目标系统上执行其操作。请参阅http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/write_a_registry_entry.html

在本机 WiX XML 示例中,似乎不会在目标系统上创建无关文件夹;只会应用所需的注册表项。我可以使用什么 Wix# 语法结构来应用注册表项,同时避免在目标系统上创建实际文件夹?

到目前为止,我看到的所有 Wix# 示例似乎都具有在目标系统上创建实际文件夹的副作用,无论您是否需要。

我知道我可以通过获取注册表项的 .reg 文件,用热量将它们收集到 .wxs 文件,然后用蜡烛和光将其构建到 msi 来做到这一点。我真的很想将它保留在 C#/Wix# 世界中。在我的组织中,C# 是一项广为人知的技能;WiX 少一些。(承认 Wix# 是建立在 WiX 功能之上的,对 WiX 和 Windows Installer 有一定程度的理解是必不可少的;这是一个舒适区的事情,能够使用 C# 而不是 XML,而不是完全合乎逻辑的事情。)目前,我们手动执行了很多此类注册表设置任务,没有任何痕迹,也没有简单、可靠的卸载。

}

0 投票
1 回答
2149 浏览

wixsharp - 我可以使用 Wixsharp 安装 Windows 服务吗

我一直在使用 WIX# (wixsharp) 创建 MSI,但看不到如何安装 Windows 服务。我浏览了整个 CHM 文件,但没有看到任何特定于 Windows 服务的内容。

TIA,

布伦特...

0 投票
2 回答
1953 浏览

c# - 以提升/管理员身份运行 wix 批处理脚本

我使用 wixsharp 编写了一个 WIX 安装程序,它包装了使用批处理文件的旧式安装过程。当以非管理员身份运行 MSI 时,我会收到提升(UAC 对话框)的提示,但是批处理脚本是以非管理员身份运行的

解决此问题的一种方法是以管理员身份启动命令提示符并使用 msiexec 运行 MSI - 这可行但非常笨拙。

如何PathFileAction以管理员身份运行?

0 投票
1 回答
456 浏览

c# - wix # 创建安装程序的脚本

我有一个 wpf 应用程序,它可以帮助用户选择目录路径,当他单击创建安装程序按钮时,我想为用户选择的目录创建安装程序(目录内可能有多个文件)。

我开始知道我可以使用 wix# 脚本,然后在单击按钮时调用此脚本。但我不知道如何编写一个 wix# 脚本来输入文件(该安装程序的文件将被创建)。

我熟悉基本的 wix 和新的 wix #。请帮我解决我的问题。

0 投票
1 回答
773 浏览

c# - 使用 WiX Sharp 创建 WiX Msi

我用于创建 msi 的 WiX Sharp 程序:

在这段代码中,如果我传递了我想要释放的文件夹路径,那么它将创建一个工作正常的 msi。

我的问题是我想传递多个文件夹路径,所以我的主要功能看起来像这样,但我无法弄清楚我必须在代码中间更改什么

static public void BuildMsi(list<string> folderPath)