我正在尝试使用 WIX 3.7 UI 创建一个应用程序。如果我在我的代码使用的地方组装。为 .NET 4.0 编译时,我收到以下错误消息:
SFXCA:绑定到 CLR 版本 v2.0.50727
错误:无法从程序集中加载嵌入式 UI 类 EmbeddedUI.EmbeddedUI:CustomActions
我在 CustomAction.config 中尝试了不同的东西。当前版本是:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
</configuration>
该类实现如下:
public class HelloWorld : IEmbeddedUI
{
#region IEmbeddedUI Members
public bool Initialize(Session session, string resourcePath, ref InstallUIOptions internalUILevel)
{
System.Windows.Forms.MessageBox.Show("test256");
return true;
}
public MessageResult ProcessMessage(InstallMessage messageType, Record messageRecord, MessageButtons buttons, MessageIcon icon, MessageDefaultButton defaultButton)
{
return MessageResult.OK;
}
public void Shutdown()
{
}
#endregion
}
在文件 Product.wxs 中:
<UI Id="Embedded">
<EmbeddedUI Id="MyTest" Name="CustomAction45CA.dll" SourceFile="..\CustomAction45\bin\Debug\CustomAction45CA.dll">
</EmbeddedUI>
</UI>
我正在使用 Visual Studio 2012。
当我从 AssemblyProperties 中的 Framework 从 4.0 切换到 3.5 时,一切正常。引导程序应用程序的测试适用于框架 4.0。
我怀疑 MakeSfxCA.exe 使我的 dll 损坏。但我不知道我能做什么。我已经尝试过 MakeSfxCA.exe.config 以及 x86 和 x64。
我将非常感谢任何帮助