c# - 我需要一个从 MSI 源目录复制文件的 MSI 自定义操作

标签 c# installation windows-installer custom-action

我正在使用 VS 2008 为 c# windows 项目创建一个安装程序。我正在尝试编写一个自定义操作,从存储在文件服务器上的 MSI 文件的源目录(例如\server\fileshare\myappinstaller\mysetting.xml)到安装我的应用程序的计算机上的目标目录(例如 C:\Program Files\My App)。

无法将设置文件添加到安装程序中,因为它将包含安装应用程序的客户独有的设置。

是否有人拥有此类自定义操作的代码(最好是 C# 或 VB.NET)?或者,有没有人知道如何在自定义操作中获取 MSI 源位置(例如\server\fileshare\myappinstaller)。

非常感谢

最佳答案

我已经通过添加

解决了这个问题

/InstallerPath="[OriginalDatabase]"

到自定义操作的 CustomActionData(在设置项目的自定义操作选项卡中)并在自定义操作中使用此代码读取值:

    Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary)
        MyBase.Commit(savedState)

        Dim directoryOfMSI As String = IO.Path.GetDirectoryName(Context.Parameters("InstallerPath"))

        'Do your work here
        '...

    End Sub

再见! 斯特凡

关于c# - 我需要一个从 MSI 源目录复制文件的 MSI 自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/368154/

相关文章:

java - 在 i 中创建 win 安装程序时出现问题

windows - 如何使 vcredist 成为我的 MSI 安装程序的启动条件?

c# - Lucene.net 可以用于基于标签的搜索系统吗?

c# - 如何从数据表中选择所有行

c# - 如何接收发布到 ASP.net core 2.1 Web-API 端点的文件和数据

wix - 在 Wix 安装程序上设置 'AllUsers' 选项不起作用

java - Mac 上的 java 安装 (xerces) 问题

c# - WPF - MVVM View 模型设置

plugins - 如何为 Sublime Text 2 编辑器安装插件?

.net - 无需卸载即可升级Windows服务