AvaloniaUI项目离线开发全攻略:IDE安装、模板应用与NuGet私有化部署一站式解决...

unsetunset1. 引言unsetunset

在网络受限或完全离线的环境中开发.NET项目(本文示例为Avalonia UI项目),可能会遇到一些挑战。本文将为您提供一套完整的离线开发解决方案,包括IDE的安装、Avalonia UI模板的配置、私有化NuGet服务的部署以及NuGet包的制作和上传等。

unsetunset2. IDE安装指南unsetunset

Visual Studio 2022安装

Visual Studio 2022是微软推出的最新IDE,支持Avalonia UI项目的开发。以下是详细的离线安装步骤:

  • 离线安装包制作:首先,根据网友 VS2022离线安装包[1] 的指南,制作Visual Studio 2022的离线安装包。

  • Avalonia UI扩展安装:安装Visual Studio后,通过 Visual Studio Marketplace[2] 下载并安装Avalonia for Visual Studio 2022扩展。

aa7c9ae9eeecaa27e440bf19652555f0.jpeg
  • 安装过程中遇到失败

ada58a5ed7a46c8e2991b6d093ee151d.png

根据微信群内@rabbitism的解答(感谢@daidai_cn的帮助),我们可以通过解压该扩展文件,删除下图框选的Extension.vsext文件后再进行安装:

09894181ff6d8d153aa8820aa0817909.jpeg

正常安装了:

d91fe5369fa3ba7ae1d670f6fd6c6ea2.png

JetBrains Rider安装

JetBrains Rider[3] IDE在2020.3版本中开始内置支持Avalonia XAML,包括对Avalonia特定XAML功能和自定义代码检查的一流支持。

离线安装包下载地址:下载 Rider:跨平台 .NET IDE (jetbrains.com)[4]

unsetunset3. 安装Avalonia UI模板unsetunset

在线安装请参考文档 Avalonia Docs[5],离线安装请点击 Avalonia.Templates[6] 下载:

42f644863faf1dc7b45973bc7c5275b4.jpeg

安装方式同上图.NET CLI命令脚本:

dotnet new install avalonia.templates.11.0.10.1.nupkg
9a6eee8e64d6f750bc27d532b15eab9a.jpeg

现在,无论是在Visual Studio还是JetBrains Rider中,您都可以使用Avalonia UI模板来创建新项目了。

VS 2022中Avalonia UI模板:

e6f92b7b673e0817cd613c2552298cf7.jpeg

Rider中使用模板:

65d6e097090375c857dde184daab9f8c.jpeg

unsetunset4. 私有化部署NuGet服务unsetunset

创建好项目后,程序也是无法正常运行的,默认模板依赖Avalonia UI的一些NuGet包,需要在线安装,可以直接把相关库拷贝到内网,但一个一个拷贝、引用还是很麻烦。

为了方便团队内部成员之间共享和管理NuGet包,您可以考虑部署私有NuGet服务。本文推荐使用BaGet作为轻量级的NuGet服务器,参考该BaGet项目说明[7]

  1. 安装 .NET Core 3.1 [8] SDK,该程序能支持的.NET最新版本,有兴趣可以Clone修改成.NET 8\9(PR中有惊喜,网友有PR升级分支);

  2. 下载最新版的Release压缩包 Releases · loic-sharma/BaGet [9]

  3. 运行服务dotnet BaGet.dll

  4. 浏览器打开http://localhost:5000访问:

07da58de3ad36e2a4bfe134f2a75ae4f.jpeg

OK,这就算部署完成了。

unsetunset5. NuGet包制作(可略)unsetunset

网上教程较多,可简单配置库的工程文件支持NuGet包生成,参考CodeWF.EventBus[10]

<Project>
 <PropertyGroup>
  <Company>https://codewf.com</Company>
  <Authors>沙漠尽头的狼</Authors>
  <Owners>https://codewf.com</Owners>
  <AssemblyVersion>$(Version)</AssemblyVersion>
  <FileVersion>$(Version)</FileVersion>
  <Version>$(Version)</Version>
  <Description>通过 CodeWF.EventBus 提供的 事件总线,我们可以很轻松的实现 CQRS 模式。根据业务需求,我们可以创建并维护读模型,将读操作和写操作进行分离,从而提高应用程序的可扩展性和性能。可在各种模板项目使用:WPF、Winform、AvaloniaUI、ASP.NET Core等。The CodeWF.EventBus allows us to easily implement the CQRS mode. According to business requirements, we can create and maintain a read model to separate read and write operations, thereby improving the scalability and performance of the application. Can be used in various template projects: WPF, Winform, AvaloniaUI, ASP. NET Core, etc.</Description>
  <ApplicationIcon>Resources\logo.ico</ApplicationIcon>
  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
  <Title>$(AssemblyName)</Title>
  <Copyright>Copyright © https://codewf.com 2024</Copyright>
  <AssemblyName>$(AssemblyName)</AssemblyName>
  <RootNamespace>$(AssemblyName)</RootNamespace>
  <PackageId>$(AssemblyName)</PackageId>
  <PackageTags>C# EventBus; WPF; Winform; AvaloniaUI,ASP.NET Core;</PackageTags>
  <PackageIcon>logo.png</PackageIcon>
  <PackageProjectUrl>https://github.com/dotnet9/CodeWF.EventBus</PackageProjectUrl>
  <RepositoryUrl>https://github.com/dotnet9/CodeWF.EventBus</RepositoryUrl>
 </PropertyGroup>
 <ItemGroup>
  <None Include="Resources\logo.png">
   <Pack>True</Pack>
   <PackagePath>\</PackagePath>
  </None>
 </ItemGroup>
</Project>

生成库工程时就会生成相应的NuGet文件,这里是已经发布的NuGet包地址:https://www.nuget.org/packages/CodeWF.EventBus

unsetunset6. NuGet包上传unsetunset

可以上传自己制作的NuGet包,也可以上传从 NuGet官网[11] 或第三方获得的NuGet包。

我们打开自己部署的NuGet首页http://localhost:5000:

7846b34981a7e3a5da33ebf328ef0cef.jpeg

点击Upload a package,切换到NuGet包上传命令说明:

4154acaf620ac45f1345c6fd84230f4a.jpeg

我们以.NET CLI上传NuGet包举例,首先准备NuGet文件,比如从NuGet官网搜索[12]下载Avalonia UI的基础包:

59896132257b527c9217c5348e32eed7.jpeg d0e8482299d1a8bf888b7cfd806398dd.jpeg

下载好以后,在当前下载目录打开CMD命令行输入:

dotnet nuget push -s http://localhost:5000/v3/index.json avalonia.11.1.0-rc1.nupkg
c87ab693731b3dc227270e6730ac83e6.jpeg

上面提示NuGet服务配置了密钥,我们为了简单,先停止NuGet服务,打开它的配置文件appsettings.json,清空ApiKey节点值,再运行NuGet服务:

eab990bed1d0522427409d90c0df02c3.jpeg

再执行上传命令,现在成功了:

af03b8dbef2764407c9e0a3081216eba.jpeg

NuGet首页也能搜索到了:

d556ff0a5ed315eee31819a389939f44.jpeg

unsetunset7. IDE配置NuGet源unsetunset

复制前面NuGet上传页面图中红色字体的URL地址:http://localhost:5000/v3/index.json, 在VS中配置NuGet搜索地址:

c7da6c0d2dcbf9bba383b0226415fbda.jpeg

剩下的就和平时安装包一致了。

unsetunset8. 总结unsetunset

本文介绍了如何在本地网络环境中成功安装并配置AvaloniaUI所需的开发工具和模板,以及如何部署私有NuGet服务并制作及上传NuGet包以便团队内部成员之间共享和管理NuGet包。

希望这些信息能对您的AvaloniaUI项目开发有所帮助。如有其他问题,欢迎随时向我提问。

参考资料

[1]

VS2022离线安装包: https://www.cnblogs.com/sailJs/p/16864697.html

[2]

Visual Studio Marketplace: https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaVS

[3]

JetBrains Rider: https://www.jetbrains.com/rider/

[4]

下载 Rider:跨平台 .NET IDE (jetbrains.com): https://www.jetbrains.com/zh-cn/rider/download/#section=windows

[5]

Avalonia Docs: https://docs.avaloniaui.net/zh-Hans/docs/get-started/install

[6]

Avalonia.Templates: https://www.nuget.org/packages/Avalonia.Templates

[7]

BaGet项目说明: https://github.com/loic-sharma/BaGet

[8]

.NET Core 3.1 : https://dotnet.microsoft.com/zh-cn/download/dotnet/3.1

[9]

Releases · loic-sharma/BaGet : https://github.com/loic-sharma/BaGet/releases

[10]

CodeWF.EventBus: https://github.com/dotnet9/CodeWF.EventBus

[11]

NuGet官网: https://www.nuget.org/

[12]

NuGet官网搜索: https://www.nuget.org/packages?q=avalonia

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值