Wix和自定义.net DLL

Dar*_*qer 3 wix

我正在寻找一些完整的wix项目示例,参考.NET dll(完整的wix VS项目,.net dll VS项目,以及编译的.net dll).

我正在尝试运行SampleAskKeyNet并且经常出现错误"此Windows Installer程序包存在问题.无法运行此安装所需的DLL.请联系您的支持人员或程序包供应商,我正在尝试查找我做错了什么.

我在VS中创建了wix项目,在VS中创建了.net dll项目,编译了dll项目,将CheckPidPackage.dll复制到wix VS项目目录并编译wix项目.然后我运行它,我得到这个错误.

Cha*_*ari 5

在接受的答案中提到的链接(由用户431821)确实有帮助,但发布了对我有帮助的确切事情.

自定义操作项目创建2个dll.如果项目是CustomActionProject,它将创建CustomActionProject.dllCustomActionProject.CA.dll

我正在引用CustomActionProject.dll,如下所示,这是常规的dll.

<Binary Id="CustomActionProject"
     src="..\CustomActionProject\bin\$(var.Configuration)\CustomActionProject.dll" />
<CustomAction Id="MyAction"
    Return="check"
    BinaryKey="CustomActionProject"                  
    DllEntry="Validate"/>
Run Code Online (Sandbox Code Playgroud)

WIX创建CustomActionProject.CA.dll,它实际上不是.NET托管程序集,而是非托管程序集.所以我们必须引用它而不是常规的.

<Binary Id="CustomActionProject"
     src="..\CustomActionProject\bin\$(var.Configuration)\CustomActionProject.CA.dll" />
<CustomAction Id="MyAction"
    Return="check"
    BinaryKey="CustomActionProject"                  
    DllEntry="Validate"/>
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.