visual-studio - 不在 Visual Studio 安装项目中使用自定义操作的原因

标签 visual-studio wix setup-project custom-action

今天早些时候,我与某人讨论,我发现您可以在 Visual Studio 安装项目中使用自定义操作来执行您自己的安装程序类,您通常会使用 InstallUtil 运行这些类(这对于我正在开发的新项目非常有用) )。

该人士建议我不惜一切代价避免自定义操作,并表示当您需要使用自定义操作时,您需要提出自己的解决方案,并表示这是许多人都认可的,并且已经得到了认可。很长一段时间。

我进行了搜索,找不到任何人对此表示担忧的论坛,我只是想知道是否有人知道不应使用自定义操作的任何原因?

我想确保在我的新项目中使用最可靠的解决方案,这让我对我当前的方法产生了一些担忧,但是与我讨论的人无法给我一个例子来说明原因这是一个坏主意,所以我只是想确认他们所说的是否成立。

最佳答案

我有很多理由,但这是一次漫长而主观的谈话。这里有几个链接可以帮助您入门。总之,要记住的事情是维护 MSI 的声明性 native (作者表数据驱动、事务性自定义操作),并且非常非常努力地工作,以免给安装程序带来脆弱性。由于 InstallUtil/Installer 类自定义操作的设计,它们根本不可能。请改用 WiX 的 DTF(部署工具基础)托管的自定义操作项目类型 (C#/VB.NET)。

Managed Code CustomActions, no support on the way and here's why

Custom actions are (generally) an admission of failure

请注意,对于第一个链接,由于 DTF 的发布,“技术”部分是 OBE。在我看来,战略部分有些乐观,并在第二个链接中进行了更多讨论。这也是我自己博客中的一些背景:

MSI vs .NET

The Price of Ideology and a Great New Hope

Deployment Tools Foundation (DTF) Managed Custom Actions

关于visual-studio - 不在 Visual Studio 安装项目中使用自定义操作的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706888/

相关文章:

c++ - 独立于平台的 C++ 调试器 IDE,遵循 Visual Studio 等指针

visual-studio - 自动发布脚本和 Visual Studio 安装项目

c# - 为我的程序文件夹的所有用户设置写权限

wpf - Webview2 在 WPF .Net 核心应用程序设置中不起作用

C++ 将字符串存储到类中

visual-studio - MSBuild:如何从 AssmeblyInfo.cs 读取程序集版本和文件版本?

regex - 在 Visual Studio 2010 中,如何搜索不在单行注释中的文本?

c# - 是否可以重命名为 WiX C# 自定义操作生成的类和程序集(针对 Visual Studio)?

installation - WIX 使用 x86 安装程序安装 x64 组件?