2010-12-07 74 views
2

我正在寻找一些wix项目的完整样本,参考.NET DLL(完整的WIX VS项目,.net DLL VS项目和编译.net DLL)。Wix和自定义.net dll

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

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

回答

1

对我来说,这是我的CustomAction DllEntry不符合我的方法名。即

<CustomAction Id="CheckingPID" BinaryKey="CheckPID.CA" DllEntry="BadValue" /> 

public static ActionResult CheckPID(Session session) 
+1

哇。我的部分出现语法错误。 d'oh!...感谢发布! – granadaCoder 2017-02-03 19:36:43

4

在接受的答案(由用户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"/> 

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"/> 

这解决了我的问题。

+0

侧面问题。你如何设置变量“$(var.Configuration)”,以便它正确地调试或发布? – granadaCoder 2017-02-03 20:22:41