【问题标题】:MakeSfxCA.exe and DLL compiled with Framework 4.0使用 Framework 4.0 编译的 MakeSfxCA.exe 和 DLL
【发布时间】:2010-10-08 05:37:35
【问题描述】:

我有一个用 Microsoft .NET Framework 4.0 编译的 dll 文件

当我使用 MakeSfxCA.exe 文件并将 dll 作为参数之一传递给命令行时,它会给我以下错误消息:

D:\SetupManager\test>D:\SetupManager\SetupBuilding\Wix\bin\sdk\makesfxca.exe 文件 e2.dll D:\SetupManager\SetupBuilding\Wix\bin\sdk\x86\sfxCA.dll File1.dll CustomA 操作配置 在 File1.dll 中搜索自定义操作入口点 错误:System.BadImageFormatException:无法加载文件或程序集'file:/// D:\SetupManager\test\File1.dll' 或其依赖项之一。 **这个组件是bui lt 由比当前加载的运行时更新的运行时进行,并且无法加载。** 文件名:'file:///D:\SetupManager\test\File1.dll' 在 System.Reflection.Assembly._nLoad(AssemblyName 文件名,字符串代码库, 证据 assemblySecurity、Assembly locationHint、StackCrawlMark& stackMark、Boo 精益 throwOnFileNotFound, Boolean for Introspection) 在 System.Reflection.Assembly.nLoad(AssemblyName 文件名,字符串 codeBase,E vidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Bool ean throwOnFileNotFound, Boolean for Introspection) 在 System.Reflection.Assembly.InternalLoad(AssemblyName 组件引用,证据 assemblySecurity, StackCrawlMark& stackMark, Boolean for Introspection) 在 System.Reflection.Assembly.InternalLoadFrom(字符串 assemblyFile,证据 securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, StackCrawlMark & stackMark) 在 System.Reflection.Assembly.ReflectionOnlyLoadFrom(字符串 assemblyFile) 在 Microsoft.Deployment.Tools.MakeSfxCA.MakeSfxCA.FindEntryPoints(字符串模 乐) 在 Microsoft.Deployment.Tools.MakeSfxCA.MakeSfxCA.Build(字符串输出,字符串 sfxdll、IList`1 输入、TextWriter 日志) 在 Microsoft.Deployment.Tools.MakeSfxCA.MakeSfxCA.Main(String[] args) === 预绑定状态信息 === 日志:用户 = DSDMAIN\Rajesh LOG:where-ref 绑定。位置 = D:\SetupManager\test\File1.dll 日志:Appbase = file:///D:/SetupManager/SetupBuilding/Wix/bin/sdk/ 日志:初始 PrivatePath = NULL 调用程序集:(未知)。 === LOG:这是一个仅检查绑定。 LOG:未找到应用程序配置文件。 LOG:使用 C:\Windows\Microsoft.NET\Framework\v2 中的机器配置文件 .0.50727\config\machine.config。 日志:正在尝试下载新的 URL 文件:///D:/SetupManager/test/File1.dll。 ERR:无法完成程序集设置(hr = 0x8013101b)。探测终止。

感谢任何帮助。

提前致谢。

【问题讨论】:

    标签: .net dll wix dtf


    【解决方案1】:

    通过将以下代码添加到 CustomActions.config 文件并在 MakeSfxCA.exe 旁边创建一个 MakeSfxCA.exe.config 文件,我遇到了类似的问题

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup useLegacyV2RuntimeActivationPolicy="true">
            <supportedRuntime version="v4.0" />
        </startup>
    </configuration>
    

    【讨论】:

      【解决方案2】:

      我的问题略有不同,但可能对其他人有用。 .config 文件在您的项目中必须具有名称“CustomAction.config”。它不能具有名称&lt;YourCAProject&gt;.config,当您重命名项目以赋予 dll 一个唯一名称时会发生这种情况。看来MakeSfxCA 构建工具和SfxCA 存根目前依赖于这个文件名。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-07
        • 2011-02-22
        • 2012-11-14
        • 2011-06-20
        • 1970-01-01
        相关资源
        最近更新 更多