ILMerge - "Unresolved assembly reference not allowed",packages 文件夹中的 RestSharp Nuget 包
ILMerge - "Unresolved assembly reference not allowed", RestSharp Nuget package in the packages folder
上下文: 我正在编写 CRM 插件,尝试使用最新版本的 RestSharp。我正在尝试使用 ILMerge 将 RestSharp(及其依赖项,例如列出的错误)合并到插件 DLL 中。
Merged assemblies: ... source\repos\MyCRMVSSolution\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll; ...
error : Unresolved assembly reference not allowed: System.Runtime.CompilerServices.Unsafe.
见上文,“合并程序集”命令表明它知道文件在 /packages/ 下的位置,并且知道尝试合并它。然而它说这是一个未解决的参考。
为什么会返回“未解决”呢?不确定要审查或调试什么。它显然在我想要的地方阅读它,在包裹下。但不知何故。
使用 Nuget 包 MSBuild.ILMerge.Task
,配置 default/OOTB。
降级到具有 0 个依赖项的 RestSharp 版本。这样,您将避免 ILMerge 尝试查找和管理其所有依赖项。
具有 0 个依赖项的示例 RestSharp Nuget 包:
<package id="RestSharp" version="106.10.1" targetFramework="net471" />
评论:
总体而言,使用 ILMerge for CRM 插件,明智的做法是尽可能少地依赖它来做正确的事情...尽可能限制需要合并的第 3 方 DLL 。 非常认真地对待这一点,以避免与 ILMerge 进行无用的战斗。
上下文: 我正在编写 CRM 插件,尝试使用最新版本的 RestSharp。我正在尝试使用 ILMerge 将 RestSharp(及其依赖项,例如列出的错误)合并到插件 DLL 中。
Merged assemblies: ... source\repos\MyCRMVSSolution\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll; ...
error : Unresolved assembly reference not allowed: System.Runtime.CompilerServices.Unsafe.
见上文,“合并程序集”命令表明它知道文件在 /packages/ 下的位置,并且知道尝试合并它。然而它说这是一个未解决的参考。
为什么会返回“未解决”呢?不确定要审查或调试什么。它显然在我想要的地方阅读它,在包裹下。但不知何故。
使用 Nuget 包 MSBuild.ILMerge.Task
,配置 default/OOTB。
降级到具有 0 个依赖项的 RestSharp 版本。这样,您将避免 ILMerge 尝试查找和管理其所有依赖项。
具有 0 个依赖项的示例 RestSharp Nuget 包:
<package id="RestSharp" version="106.10.1" targetFramework="net471" />
评论:
总体而言,使用 ILMerge for CRM 插件,明智的做法是尽可能少地依赖它来做正确的事情...尽可能限制需要合并的第 3 方 DLL 。 非常认真地对待这一点,以避免与 ILMerge 进行无用的战斗。