mar*_*dle 5 installation installer windows-installer wix dtf
首先,为模糊的屏幕截图道歉并且不包括代码中的全名.
我在使用Wix Framework尝试使用dll中的自定义操作时遇到问题.
我正在使用Wix 3.10.2
我在我的解决方案下有一个名为Install.CustomAction的C#Custom Action项目.然后在主Wix项目中引用它.你可以在这看到
我在主Product.wxs文件中将CA dll引用为二进制文件
<Binary Id="CustomActions.dll" SourceFile="$(var.<porjectname>.Install.CustomAction.TargetDir)<projectname>.CustomAction.CA.dll"/>
Run Code Online (Sandbox Code Playgroud)
现在在一个片段中,我有像这样引用的动作
<CustomAction Id="CA_RestoreDB" BinaryKey="CustomActions.dll" DllEntry="RestoreMobileDB" Execute="immediate" Return="check" />
<InstallExecuteSequence>
<Custom Action="CA_RestoreDB" After="InstallFinalize"/>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
所以,尽管如此,我希望一切顺利.
在名为CustomAction.cs的实际c#文件中,我使用[CustomAction]属性进行了此设置
[CustomAction]
public ActionResult RestoreMobileDB(Session session)
{
//string installPath = session.GetTargetPath(TARGETDIR);
string x = session["INSTALLFOLDER"];
session.Log("Begin CustomAction1");
doSomeStuff(x, session);
return ActionResult.Success;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切看起来都很好,而且我正在努力工作.但是当我来编译所有内容时,我得到了这个错误
Severity Code Description Project File Line Suppression State
Error The command ""C:\Program Files (x86)\WiX Toolset v3.10\bin\..\sdk\MakeSfxCA.exe" "C:\Work Files\Development\<product>\<solution>\<project>.Install.CustomAction\obj\x86\Release\<project>.Install.CustomAction.CA.dll" "C:\Program Files (x86)\WiX Toolset v3.10\bin\..\sdk\x86\SfxCA.dll" "C:\Work Files\Development\<product>\<solution>\<project>Install.CustomAction\obj\x86\Release\<project>.Install.CustomAction.dll" "C:\Program Files (x86)\WiX Toolset v3.10\SDK\Microsoft.Deployment.WindowsInstaller.dll;C:\Work Files\Development\<product>\<solution>\<project>.Install.CustomAction\CustomAction.config"" exited with code 1. <project>.Install.CustomAction
Run Code Online (Sandbox Code Playgroud)
接下来是这个错误
模块中找不到CA或UI入口点
你知道是什么原因引起的吗?我已经指定了一个入口点,并在我的.wxs文件中引用了dll,但它似乎对我不起作用.
我认为它需要:
public static ActionResult ...
Run Code Online (Sandbox Code Playgroud)