合并.NET Standard程序集

8
我找不到任何关于使用ILRepack或ILMerge合并两个(或多个).NET Standard程序集的文档。这两个工具都可以合并.NET配置文件为2.0、3.5和4.0的程序集,但我认为它们与.NET标准配置文件不兼容。
有人有相关经验吗?有人能指出该功能的任何文档吗?
谢谢!

我不能说我已经尝试过在.NET Standard中使用这两个,但我知道微软计划在即将发布的版本中支持合并依赖项作为标准编译器功能。 - Cory Nelson
这两个工具现在都是开源的,可以在GitHub上找到。所以即使它们现在不支持这样的合并,你也可以继续让它们工作。至少,这仍然是MSIL操作,而MSIL并没有改变。 - Lex Li
@CoryNelson看起来你在提到.NET Native。它还有很长的路要走才能进入竞技场。 - Lex Li
1个回答

7

不确定您是否仍然感兴趣,但我以前曾使用ILRepack使其正常工作。

主要的技巧是将路径添加到RepackOptions.SearchDirectories中的NETStandard.Library。可以简单地指向您的nuget目录。类似于:\.nuget\packages\NETStandard.Library\2.0.0\build\netstandard2.0\ref

否则,将会出现异常,如“Failed to resolve assembly: 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'”


1
如果您使用.csproj配置任务,可以添加一个ItemGroup元素:<NetStandardLocation Include="$(NuGetPackageRoot)NETStandard.Library\2.0.1\build\netstandard2.0\ref" />,并在其中包含一个Exec元素,其中包含/lib:@(NetStandardLocation)命令参数。 - MytyMyky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接