0

我正在尝试使用 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。

我将非常感谢任何帮助

4

1 回答 1

0

Error will be thrown only with EmbedddedUI. CustomAction from the same dll runs with message in installer log SFXCA: Binding to CLR version v4.0.30319

于 2013-08-06T14:30:52.227 回答