Aot编译发布


支持AOT编译发布,Aot编译有那些好处?
  1. 提高软件程序性能,让界面操作体验更友好。
  2. Aot编译后生成的程序是二进制代码,可以保密软件程序,不容易破解,保护版权,性能更高。
  3. Aot编译发布生成的软件文件只有两个文件,使软件封装更简洁
  4. Aot编译发布可以选择“独立运行、不依赖外部库或运行环境”,不需要安装DotNet SDK就可以运行。
Aot编译的弊端
  • Aot编译后无法跨平台运行,需要在各平台单独编译发布

支持版本:GTKSystem.Windows.Forms v1.3.24.85版本及以上

1、工程Aot配置:

<!--框架组件/类库配置-->
<PropertyGroup>
    <!--aot发布时使用TargetFramework指定单一sdk,net8.0及以上版本-->
    <TargetFramework>net8.0</TargetFramework>
</PropertyGroup>

<!--应用常规Aot配置-->
<PropertyGroup>
     <!--aot发布时使用TargetFramework指定单一sdk,net8.0及以上版本-->
	<TargetFramework>net8.0-windows</TargetFramework>
	<PublishAot>true</PublishAot>
	<PublishTrimmed>true</PublishTrimmed>
	<IsAotCompatible>true</IsAotCompatible>
	<InvariantGlobalization>true</InvariantGlobalization>
	<PublishReadyToRun>true</PublishReadyToRun>
        <!--不依赖运行环境-->
	<SelfContained>true</SelfContained>
         <!--发布windows平台程序-->
	<RuntimeIdentifier>win-x64</RuntimeIdentifier>
         <!--发布linux平台程序-->
	<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
	<RdXmlFile Include="rd.xml" />
</ItemGroup>

2、rd.xml文件配置

<Directives xmlns="http://schemas.microsoft.com/netcore/2013/01/metadata">
	<Application>
		<Assembly Name="GtkSharp" Dynamic="Required All" />
		<Assembly Name="AtkSharp" Dynamic="Required All" />
		<Assembly Name="GdkSharp" Dynamic="Required All" />
		<Assembly Name="CairoSharp" Dynamic="Required All" />
		<Assembly Name="PangoSharp" Dynamic="Required All" />
		<Assembly Name="GLibSharp" Dynamic="Required All" />
		<Assembly Name="GioSharp" Dynamic="Required All" />
		<Assembly Name="GTKSystem.Windows.Forms" DataContractSerializer="Required All" DataContractJsonSerializer="Required All" XmlSerializer="Required All" />
            <!-- 演示项目GTKWinFormsApp -->
            <!--
		<Assembly Name="GTKWinFormsApp" DataContractSerializer="Required All" DataContractJsonSerializer="Required All" XmlSerializer="Required All" ></Assembly>
           -->
	</Application>
</Directives>

3、如何发布Aot?

使用命令发布
把控制台的命令目录定位到工程项目的根目录
如:cd D:\gtksystem-windows-forms
执行发布命令:dotnet publish -c Release demoApp.csproj
如:D:\gtksystem-windows-forms> dotnet publish -c Release GTKWinFormsApp.csproj

4、发布程序对比

滚动至顶部