1,事件转命令
引入:Avalonia.Xaml.Interactions
添加
xmlns:i="clr-namespace:Avalonia.Xaml.Interactivity;assembly=Avalonia.Xaml.Interactivity"
<i:Interaction.Behaviors>
<EventTriggerBehavior EventName="Loaded">
<InvokeCommandAction Command="{Binding LoadedCommand}" />
</EventTriggerBehavior>
</i:Interaction.Behaviors>
2,打包成安装包
zxb.visitorsystem:程序名称
1,cmd 进入程序根目录执行命令:
卸载旧版本(如果存在)
dotnet tool uninstall -g dotnet-deb
#安装最新版
dotnet tool install -g dotnet-deb
2,配置程序的配置
<ItemGroup>
<Content Include="Assets\logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<LinuxPath>/usr/share/icons/logo.png</LinuxPath>
</Content>
<Content Include="zxb.visitorsystem.desktop">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<LinuxPath>/usr/share/applications/zxb.visitorsystem.desktop</LinuxPath>
</Content>
<DotNetDebTool Include="dotnet-deb" Version="1.0.0" />
</ItemGroup>
<Target Name="CreateDeb" AfterTargets="Publish">
<Exec Command="dotnet deb -c $(Configuration) -f $(TargetFramework) -r $(RuntimeIdentifier) -o $(PublishDir) ../" />
</Target>
文件:zxb.visitorsystem.desktop 的内容
[Desktop Entry]
Name=zxb.visitorsystem
Exec=/usr/local/bin/zxb.visitorsystem
Icon=/usr/share/icons/logo.png
Type=Application
Categories=Utility;
3,打包命令
先正常发布
dotnet publish -c Release -r linux-x64 --self-contained true
然后执行打包(确保在项目目录下)
dotnet msbuild /t:CreateDeb /p:Configuration=Release /p:TargetFramework=net8.0 /p:RuntimeIdentifier=linux-x64