我将解决方案从.NET Framework重定向到.NET Framework 4.6.1和.NET Standard 2.0。我需要将程序集合并为一个。
在旧的解决方案上,我使用的是ILMerge,但是它很旧,并且不支持.NET Standard。
我尝试使用ILRepack,它对于.NET Framework效果很好,但对于.NET Standard也不起作用。
现在,我正在尝试使用Costura.Fody,但它仅在目标框架net461
上运行良好:它仅在输出文件夹上生成一个DLL,大小约为4MB。但是,对于netstandard2.0
或netcoreapp3.0
,所有程序集都被复制到输出文件夹,并且生成的DLL约为4KB,并针对.NET Framework 4.7.2。
我有一个项目(我通过NuGet在其中添加了Costura.Fody)引用了所有其他项目。它们都是类库。
感谢您的任何帮助。
我需要有关错误或产生的结果的更多信息,但是through the documentation,您可以配置:
<ILMerge InputAssemblies="@(MergeAssemblies)"
...
TargetPlatformVersion="v4.6"
TargetPlatformDirectory="$(ProgramFiles)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6"
/>
您是否尝试过使用此线程:How do I use ILMerge with .NET 4.5 in AfterBuild?似乎是一个非常相似的问题。
否则,我可以向您推荐下一个工具:https://www.eziriz.com/downloads.htm