0

我创建了一个 MSI 文件,但我希望文件中的特定 C# 方法用于在表中的ExecuteAction操作之前发生的自定义操作InstallExecuteSequence中。我有什么方法可以更新BinaryOrca 中的表,以便它引用 MSI 文件中的特定方法?

有关详细信息,我的 MSI 文件使用三个单独的 C# 类库项目。我想在自定义操作中使用的方法被调用,并且在项目InitialAction中调用的 CS 文件中。Initialise.csInitialise

4

1 回答 1

2

不,你不能。Windows Installer 本身不支持托管代码自定义操作。这里提到的Dll类型:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa372048(v=vs.85).aspx

在具有标准所需入口点签名的 Win32 Dll 中。托管代码自定义操作通常使用调用托管代码的 shim C++ Dll (Visual Studio) 或调用外部进程 (WiX DTF) 的 C++ 来实现。如果您使用的是 Visual Studio 或 WiX,两者都提供对托管代码自定义操作的支持。

话虽如此,您的代码需要直接调用吗?支持运行外部可执行文件,无论是否托管代码。可执行文件可以调用类库。

描述你的最终目标通常很有用。实际上,您已决定解决问题的方法是编辑 MSI,但没有对该实际问题的描述。您似乎想修改现有的 MSI 以调用代码,但您不想使用可用工具重新构建它。

于 2017-11-29T18:09:22.257 回答