А то уже неясно толком что с чем совместимо или несовместимо. Вот был когда-то просто .Net Framework и Mono, с отставанием, делавшие частичную реализацию API, а сейчас развелся зоопарк, тут еще и Core и спецификации Standard.
Таблицу по ссылке видел https://learn.microsoft.com/ru-ru/dotnet/standard/net-standard вот только столкнулся с тем, что либа, соответствующая стандарту 2.0 не хочет работать с Mono версии 6.8, при этом более ранние версии либы, спокойно работают. То ли ей нужна строго Mono 6.4 и не более, не менее, то ли вообще что-то не так пошло. Требует правильную сборку.
./zlist.cs(14,16): error CS0012: The type `System.Collections.IEnumerable' is defined in an assembly that is not referenced. Consider adding a reference to assembly `netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
Файл zlist.cs - для демонстрации работы с zip-архивами. Пример взят где-то с сайта документации по либе CSharpCode.SharpZipLib http://icsharpcode.github.io/SharpZipLib/
Исходники либы https://github.com/icsharpcode/SharpZipLib
Скомпилированный бинарник https://www.nuget.org/packages/SharpZipLib/
using System;
using System.Text;
using System.Collections;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
class MainClass
{
static public void Main(string[] args)
{
//Между прочим, умеет читать самораспаковывающийся *.exe с zip внутри
using (ZipFile zFile = new ZipFile(args[0])) {
Console.WriteLine("Listing of : " + zFile.Name);
Console.WriteLine("");
Console.WriteLine("Raw Size Size Date Time Name");
Console.WriteLine("-------- -------- -------- ------ ---------");
foreach (ZipEntry e in zFile) {
if ( e.IsFile ) {
DateTime d = e.DateTime;
Console.WriteLine("{0, -10}{1, -10}{2} {3} {4}", e.Size, e.CompressedSize,
d.ToString("dd-MM-yy"), d.ToString("HH:mm"),
e.Name);
}
else
{
//e Is not File
DateTime d = e.DateTime;
Console.WriteLine("{0, -10}{1, -10}{2} {3} {4}", e.Size, e.CompressedSize,
d.ToString("dd-MM-yy"), d.ToString("HH:mm"),
e.Name+"*");
}//notFile
}
}
}
}
Компилирую
$mcs ./zlist.cs -r:ICSharpCode.SharpZipLib.dll
Версии
$ mono -V
Mono JIT compiler version 6.8.0.105 (Debian 6.8.0.105+dfsg-3.2 Tue Jun 29 21:01:01 UTC 2021)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: supported, not enabled.
Suspend: hybrid
GC: sgen (concurrent by default)
Есть у меня подозрение, что эта версия 6.8 - версия компилятора, а не Mono и реально там что-нибудь соответствует .NET 4.5, но какая-то ерунда с доками, не могу понять.
При этом у меня завалялась старая сборка SharpZipLib трехлетней давности, которую сейчас не могу найти на сайте, так с ней проблем нет, всё компилируется и работает отлично. Чтобы самому собрать похоже нужна VS 16-я и более.