【问题标题】:Unable to load DLL mscorsn.dll with ILMerge无法使用 ILMerge 加载 DLL mscorsn.dll
【发布时间】:2016-03-10 19:07:03
【问题描述】:

我正在尝试编译一个项目,该项目使用 ILMerge 将多个 DLL 组合在一起,然后对它们进行签名以部署到 CRM。代码已编译,但 ILMerge 失败。此过程适用于其他开发人员机器,但不适用于我的机器。

我正在使用 Visual Studio 2015、Windows 10,并针对 .NET 4.5.2 进行构建。

所有项目都用 AnyCPU 编译。

将程序集引用“System.Runtime.Caching”解析为“C:\Windows\Microsoft.NET\Framework64\v4.0.30319..\v4.0.30319\System.Runtime.Caching.dll”。 (使用的框架目录。)

合并时发生异常: 无法加载 DLL 'mscorsn.dll':找不到指定的模块。 (来自 HRESULT 的异常:0x8007007E) 在 System.Compiler.Writer.MscorsnStrongNameSignatureGeneration(字符串 wszFilePath,字符串 wszKeyContainer,字节 [] pbKeyBlob,Int32 cbKeyBlob,IntPtr ppbSignatureBlob,IntPtr pcbSignatureBlob) 在 System.Compiler.Writer.WritePE(字符串位置,布尔 writeDebugSymbols,模块模块,布尔 delaySign,字符串 keyFileName,字符串 keyName) 在 System.Compiler.Writer.WritePE(CompilerParameters 编译器参数,模块模块) 在 ILMerging.ILMerge.Merge() 在 ILMerging.ILMerge.Main(String[] args)

我的构建后事件参数是:

if "$(ConfigurationName)" == "Debug No ILMerge" goto :exit REM **** Create ILMerge Directory **** md "$(TargetDir)IlMerge" REM **** Delete Previous Log **** del "$(TargetDir)IlMerge\Log.txt" REM **** Run IlMerge **** "$(SolutionDir)packages\ILMerge.2.14.1208\tools\ILMerge.exe" /log:"$(TargetDir)IlMerge\Log.txt" /keyfile:"$(ProjectDir)Client.Xrm.Plugins.Key.snk" /targetplatform:v4 /out:"$(TargetDir)IlMerge\$(TargetFileName)" "$(TargetPath)" "$(TargetDir)DLaB.Common.dll" "$(TargetDir)DLaB.Xrm.2015.dll" "$(TargetDir)Client.Xrm.dll" "$(TargetDir)Applications.Web.Security.dll" "$(TargetDir).Domain.dll" "$(TargetDir)Newtonsoft.Json.dll" :exit

我可以在我的计算机上手动找到 mscorsn.dll 并将其放入本地文件夹。 ILMerge 会选择它,但取决于我使用的版本(Windows 中有 4-5 个不同的副本),它要么完全失败,要么声明它无法签署最终的 dll。

我已尝试将 targetplatform 指向具有 mscorsn.dll 文件的特定 .NET 文件夹,但无济于事。

【问题讨论】:

  • 我也有同样的问题。

标签: .net visual-studio ilmerge


【解决方案1】:

我找到了答案。 ILMerge 似乎需要 .NET 3.5,并且默认情况下在 Windows 8、8.1 或 10 上不存在。安装 .NET 3.5 后,ILMerge 运行良好。

  • 程序和功能 ->
  • 打开或关闭 Windows 功能 ->
  • .NET Framework 3.5(包括 .NET 2.0 和 3.0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多