zerosharp

所属分类:C/C++基础
开发工具:C#
文件大小:62KB
下载次数:0
上传日期:2022-12-22 08:02:17
上 传 者sh-1993
说明:  演示C#在使用.NET本机提前编译技术进行系统编程方面的潜力。
(Demo of the potential of C# for systems programming with the .NET native ahead-of-time compilation technology.)

文件列表:
efi-no-runtime (0, 2022-12-10)
efi-no-runtime\build.cmd (2075, 2022-12-10)
efi-no-runtime\efinoruntime.csproj (3186, 2022-12-10)
efi-no-runtime\zerosharp.cs (5560, 2022-12-10)
no-runtime (0, 2022-12-10)
no-runtime\build.cmd (1586, 2022-12-10)
no-runtime\noruntime.csproj (1593, 2022-12-10)
no-runtime\zerosharp.cs (4781, 2022-12-10)
with-runtime (0, 2022-12-10)
with-runtime\Test.CoreLib.dll (71680, 2022-12-10)
with-runtime\Test.CoreLib.pdb (34112, 2022-12-10)
with-runtime\withruntime.csproj (1899, 2022-12-10)
with-runtime\zerosharp.cs (1194, 2022-12-10)

# C# for systems programming These samples show how to compile C# to native code using the .NET Native AOT technology ([NativeAOT](https://github.com/dotnet/runtimelab/tree/feature/NativeAOT), also known as CoreRT previously). The samples are for people who would like to use C#, but don't want to be bound by the choices of the base class libraries that normally come with C# (in the form that it's bundled in .NET). If you just want to native compile your .NET apps, go to the [NativeAOT](https://github.com/dotnet/runtimelab/tree/feature/NativeAOT) repo/branch instead. Nothing to see for you in this repo. `no-runtime` is a rather pointless sample that demonstrates how to write code in C# that is directly runnable without a runtime. C# has value types and you can p/invoke into an unmanaged memory allocator, so you can do things with this, but you're so severily limited it's rather pointless. But Hello world ends up being about 8 kB native EXE with no dependencies, so that's rather cool. `with-runtime` is something that can be actually useful. This includes the full managed and unmanaged runtime - GC, exception handling, and interface dispatch all work. Test.CoreLib used as the class library here is the same Test.CoreLib that you can find in the NativeAOT repo. Don't look for things like `Object.ToString()` because being compatible with .NET is not the point. This sample comes down to about 400 kB, most of which is the C runtime library. `efi-no-runtime` is an EFI boot application that lets you run C# on bare metal, without an OS. Similar restrictions to the `no-runtime` sample apply. Making a version of this sample with a runtime would require some porting work on the runtime side. ## Building the samples [.NET 7 SDK](https://dotnet.microsoft.com/download) is a prerequisite for building these on all platforms. In addition to the .NET 7 SDK, these are needed: * On Windows: Visual Studio 2022 **with** C++ development support and a Windows SDK * On Linux: clang * On macOS (untested): XCode One you made sure you have the prerequisites, enter the appropriate sample directory and type: ```bash $ dotnet publish -c Release ``` Some samples also come with a shell script (*.cmd) that pieces together all the tools and avoid MSBuild or dotnet. You need to make sure you have environment set up before running the script. Look at the script for details. The script is redundant with the *.csproj project files.

近期下载者

相关文件


收藏者