gpt4 book ai didi

c# - (Wix 安装程序)如何包含自定义操作依赖项

转载 作者:行者123 更新时间:2023-12-02 10:07:34 26 4
gpt4 key购买 nike

我在安装解决方案中有 3 个项目:

  • 用 c# 编写的自定义操作 dll
  • 用 C++ 编写的自定义操作 dll
  • Util dll 也用 c++ 编写(c# 和 c++ 使用它,作为
    互操作)

  • 问题是如何将Util.dll添加到wix安装程序中,

    当我将此 dll 复制/粘贴到 C:\ProgramFiles\SystemWOW64\(msiexec.exe 目录)时,一切正常,但这是我要避免的一种糟糕的解决方法。

    我试过的:
    1) 添加作为对 MSI 项目的引用并包括为:
       <?xml version="1.0" encoding="utf-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
    <Binary Id="CPlusPlusAction" SourceFile="$(var.CPlusPlusAction.TargetDir)$(var.CPlusPlusAction.TargetName).CA.dll"/>
    <Binary Id="CSharpAction" SourceFile="$(var.CSharpAction.TargetPath)"/>
    <Binary Id="Utils" SourceFile="$(var.SolutionDir)/$(var.Utils.Configuration)/Utils.dll"/>
    <CustomAction Id="FunctionOne" Impersonate="no" Return="ignore" Execute="commit" BinaryKey="CPlusPlusAction" DllEntry="FunctionOne" />
    <CustomAction Id="FunctionTwo" Impersonate="no" Return="ignore" Execute="commit" BinaryKey="CSharpAction" DllEntry="FunctionTwo"/>
    </Fragment>
    </Wix>

    2) 使用 CopyLocal = true 添加对两个项目的引用

    我用谷歌搜索了很多,但仍然找不到解决方案( Wix Doc 、StackOverflow、msdn 等)

    提前致谢

    最佳答案

    对于 C# 托管的自定义操作,我认为您不能添加 native dll 作为引用。因此,改为将其添加为操作拷贝的内容,我很确定 DTF 会将其打包并在自定义操作执行时在临时目录(进程的当前目录)中可用。

    对于 C++,我使用 InstallShield 中的 ISSetup.dll/ISSetupFile 模式,或者如果可以的话静态链接库。

    关于c# - (Wix 安装程序)如何包含自定义操作依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59425564/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com