All streams
Search
Write a publication
Pull to refresh
17
0.1

User

Send message
Пока нет официальной поддержки, я пока не готов рисковать.
Без Native AOT и так попадаем на баги .NET-а :)

А вот для своих утилит наверное стоит и попробовать раз есть положительный опыт.

Учитывая количество проблем, думаю рановато будет https://github.com/dotnet/runtimelab/labels/area-NativeAOT

Тип System.Drawing.Bitmap.
Библиотека для работы с WinAPI.


Несомненно проблема такого плана не возникает у всех каждый день.
Тем более, что такой проблемы не было до появления .NET 5, а на него, полагаю, перешли не все.

Спасибо, уточню в статье раз было неясно.
Оно то логично, но потом почему-то с урезанием неиспользованного кода не вырезается весь WinForms, который нигде по факту не используется.

TFM не ограничивается только формами.
Так получилось, что в библиотеке в одной из внутренних зависимостей используется тип из WinForms.
А раз он используется внутри, то вся библиотека затребовала windows TFM и в результате бинарник разбух без хорошей причины.

А в библиотеке выставлен net5.0-windows?
У меня не собирается:

Library.csproj
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>
</Project>


ConsoleApp.csproj
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\Library\Library.csproj" />
  </ItemGroup>
</Project>


error NU1201: Project Library is not compatible with net5.0 (.NETCoreApp,Version=v5.0). Project Library supports: net5.0-windows7.0 (.NETCoreApp,Version=v5.0)
С таким подходом придётся либо работать с .NET 3.5 (если нужно Windows 7) или .NET 4.0.
В любом случае это достаточно древней фреймворк, чтобы некоторые необходимые библиотеки не работали с ними.
Кроме того, бывают случаи когда целенаправленно клиенты убирают .NET для безопасности.

Компилируется да. А теперь попробуйте dotnet publish —self-contained.

Попробуйте, проект не соберётся.


error NETSDK1136: The target platform must be set to Windows (usually by including '-windows' in the TargetFramework property).

Как раз если будут исходники будет полный «leftpad», а пока это так ерунда.
От того, что будут исходники отслеживать качество и безопасность ничуть не проще.
Кроме того любую dll можно dotPeek-ом превратить в полноценный проект C#, а потом добавить в проект как исходный код.
Но зачем ?:)

Наряду с ref, out сегодня есть ещё и in.

Наверное, по хорошему стоит смотреть на настройку CA1062. Если разработчик его установил, то стоит ругаться, а если запретил то конечно решаться не следует.

Подумываю заменить самописный скрипт для сборки на что-то более вменяемое.
Подумываю переписать на MSBuild, насколько Nuke себя оправдал?

Учитывая нелогичность всего и вся в английском, сомневаюсь, что в этом причина :)
То ли дело великий и могучий, мужчина мужского рода =)

Ну тут зависит как смотреть. Придётся видимо учитывать в русском стиле все варианты произношения :)): пиво:


Бьярн считает, что чар потому как в английском итак нет логики :)
char" is usually pronounced "tchar", not "kar". This may seem illogical because "character" is pronounced "ka-rak-ter", but nobody ever accused English pronunciation (not "pronounciation" :-) and spelling of being logical.


Туда же putty пати, хотя логично пУти от слова put.
Gif — джиф, хотя логичней gif.
И так далее :)

Таки «кар» от карактер (character) :)

Python 3 аналогично: / и //.

Должен быть по всей видимости auto a = 5u;


// Автоматический вывод типа
unsigned int a = 5;
auto b = a + 3;

Почему нет?
В плане поддержки системы различий между 3.1 и 5.0 практически нет.
https://github.com/dotnet/core/blob/master/release-notes/3.1/3.1-supported-os.md
https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0-supported-os.md

Information

Rating
2,946-th
Registered
Activity