我创建了一个 MSI 文件,但我希望文件中的特定 C# 方法用于在表中的ExecuteAction
操作之前发生的自定义操作InstallExecuteSequence
中。我有什么方法可以更新Binary
Orca 中的表,以便它引用 MSI 文件中的特定方法?
有关详细信息,我的 MSI 文件使用三个单独的 C# 类库项目。我想在自定义操作中使用的方法被调用,并且在项目InitialAction
中调用的 CS 文件中。Initialise.cs
Initialise
我创建了一个 MSI 文件,但我希望文件中的特定 C# 方法用于在表中的ExecuteAction
操作之前发生的自定义操作InstallExecuteSequence
中。我有什么方法可以更新Binary
Orca 中的表,以便它引用 MSI 文件中的特定方法?
有关详细信息,我的 MSI 文件使用三个单独的 C# 类库项目。我想在自定义操作中使用的方法被调用,并且在项目InitialAction
中调用的 CS 文件中。Initialise.cs
Initialise
不,你不能。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 以调用代码,但您不想使用可用工具重新构建它。