.net core 7.0+centos 7.0

cetnos目前运行在hyper V虚拟机里

虚拟机部署的注意事项

1 需要配置网络环境,

确保在同一局域网下

如果sftp无法连接

ctrl+shift+f2切换到命令行,开启22端口

iptables -I INPUT -p  tcp --dport 22 -j ACCEPT

 

同时虚拟机网络也要正确配置.

发布流程如下

1 发布项目,选择目标运行时为linux-X64,部署模式为独立,这样就不需要安装.net core运行环境,此处可根据实际情况自行调整下

如图设置即可

2

发布后,使用Xftp上传

以上传到/usr/local/bin/Test2 目录下为例

3

右击目标运行文件,通常为项目名,没有后缀名

选择可执行

4

打开kconsole,cd切换到目标路径

执行 ./AvaloniaTest ,此处AvaloniaTest 为目标文件名

4

项目正常运行

常见问题:

1 default font familyname can't be null

提示缺少默认字体,需要指定字体

参考github上的链接,设置默认字体后依然报错

https://github.com/AvaloniaUI/Avalonia/issues/4427

using Avalonia;
using Avalonia.Media;
using Avalonia.ReactiveUI;
using System; namespace ExampleApp
{
internal class Program
{
[STAThread]
public static void Main(string[] args) => BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args); public static AppBuilder BuildAvaloniaApp()
{
FontManagerOptions options = new();
if (OperatingSystem.IsLinux())
{
options.DefaultFamilyName = "<Linux Default Font Family Name Here>";
}
else if (OperatingSystem.IsMacOS())
{
options.DefaultFamilyName = "<macOS Default Font Family Name Here>";
}
// No need to set default for Windows
return AppBuilder.Configure<App>()
.UsePlatformDetect()
.LogToTrace()
.UseReactiveUI()
.With(options);
}
}
}

  

  FontFamily = new FontFamily("avares://AvaloniaTest/Assets/Fonts/微软雅黑.ttf#Microsoft YaHei")

  


不行,报错为

could not create glyphtypeface

如果报这个错误,参考问题2

 2 could not create glyphtypeface
拷贝windows系统自带的微软雅黑到如下路径
/usr/share/fonts/chinese/msyh.ttc

 运行fc-cache -f -v 命令,更新字体缓存

fc-cache -f -v

  修改Program.cs

 public static AppBuilder BuildAvaloniaApp()
{
FontManagerOptions options = new();
options.DefaultFamilyName = "Microsoft YaHei";
return AppBuilder.Configure<App>()
.UsePlatformDetect()
.WithInterFont()
.LogToTrace()
.UseReactiveUI().With(options); }

  重新发布,即可.

mac版本

测试环境:

avalonia+cefnet 跨平台浏览器套壳demo

demo为双浏览器界面

M2 arm 处理的mac系统

虚拟机,都运行通过.

直接编译后拷贝到任意位置

就可以直接运行了

demo为调用cefnet核心的avalonia项目

问题:

把编译后的.app文件,打包成zip后拷贝到mac,再解压缩,会无法运行,原因不明.

解决方法,mac打包成dmg文件,再分发.

没有签名也可以分发.就是会多一次提示.

打包命令

hdiutil create -srcfolder [源文件夹路径] [目标DMG文件路径]

  

附mac打包脚本,以cefnet为例

create_app_structure() {
APPNAME=$1
APPDIR="$APPNAME.app/Contents"
APPICONS="/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericApplicationIcon.icns" if [ ! -d "$APPDIR" ]; then
echo "creating app structure $APPDIR" mkdir -vp "$APPDIR"/{Resources,Frameworks}
cp -v "$APPICONS" "$APPDIR/Resources/$APPNAME.icns"
fi
} emit_plist() {
PLIST_APPNAME=$1
PLIST_PATH="$2/Info.plist" if [ "$3" ]; then
LSUIELEMENT="false"
else
LSUIELEMENT="true"
fi if [ ! -f "$PLIST_PATH" ]; then
echo "emiting $PLIST_PATH"
cat <<EOF > "$PLIST_PATH"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>$PLIST_APPNAME</string>
<key>CFBundleGetInfoString</key>
<string>$PLIST_APPNAME</string>
<key>CFBundleIconFile</key>
<string>$PLIST_APPNAME</string>
<key>CFBundleName</key>
<string>$PLIST_APPNAME</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>LSUIElement</key>
<string>$LSUIELEMENT</string>
</dict>
</plist>
EOF
fi
} BINARYNAME="AvaloniaApp"
CONFIGURATION="Debug"
NETTARGET="net7.0"
OS_ARCH=`/usr/bin/arch` if [ $OS_ARCH = arm64 ]; then
CEFZIP="cef_binary_105.3.18%2Bgbfea4e1%2Bchromium-105.0.5195.52_macosarm64_beta_minimal.tar.bz2"
RID="osx-arm64"
else
CEFZIP="cef_binary_105.3.18%2Bgbfea4e1%2Bchromium-105.0.5195.52_macosx64_beta_minimal.tar.bz2"
RID="osx-x64"
fi TARGET="bin" if [ ! -d "$TARGET" ]; then
mkdir "$TARGET"
fi cd "$TARGET" echo "Building CefNet Avalonia demo..."
dotnet publish ../AvaloniaApp/AvaloniaApp.csproj -c "$CONFIGURATION" -r $RID -f "$NETTARGET" -o "publish" --self-contained CEFBINARIES="../cef"
CEFFRAMEWORK_DIR="$(find $CEFBINARIES -name "Release")" if [ ! -d "$CEFFRAMEWORK_DIR" ]; then
if [ ! -f "$CEFBINARIES/$CEFZIP" ]; then
echo "downloading cef binaries from https://cef-builds.spotifycdn.com/$CEFZIP"
curl -o "$CEFBINARIES/$CEFZIP" "https://cef-builds.spotifycdn.com/$CEFZIP"
fi
echo "unzipping cef binaries"
tar -jxvf "$CEFBINARIES/$CEFZIP" --strip-components 1 -C "./$CEFBINARIES"
CEFFRAMEWORK_DIR="$(find $CEFBINARIES -name "Release")"
fi APPNAME="$BINARYNAME"
APPDIR="$APPNAME.app/Contents" rm -rf "$APPDIR" create_app_structure "$APPNAME"
emit_plist "$APPNAME" "$APPDIR" true cp -R "$CEFFRAMEWORK_DIR/Chromium Embedded Framework.framework" "$APPDIR/Frameworks/" cd "$APPDIR/Frameworks" APPNAME="$BINARYNAME Helper"
APPDIR="$APPNAME.app/Contents"
create_app_structure "$APPNAME"
emit_plist "$APPNAME" "$APPDIR"
cp -R "../../../publish/" "$APPDIR/MacOS"
ln -s "Frameworks/$APPDIR/MacOS" "../MacOS"
chmod +x "$APPDIR/MacOS/$BINARYNAME"
cp "$APPDIR/MacOS/$BINARYNAME" "$APPDIR/MacOS/$APPNAME"
chmod +x "$APPDIR/MacOS/$APPNAME" APPNAME="$BINARYNAME Helper (GPU)"
APPDIR="$APPNAME.app/Contents"
mkdir -pv "$APPDIR"
emit_plist "$APPNAME" "$APPDIR"
ln -s "../../$BINARYNAME Helper.app/Contents/MacOS" "$APPDIR/MacOS"
cp "$APPDIR/MacOS/$BINARYNAME" "$APPDIR/MacOS/$APPNAME"
chmod +x "$APPDIR/MacOS/$APPNAME" APPNAME="$BINARYNAME Helper (Plugin)"
APPDIR="$APPNAME.app/Contents"
mkdir -pv "$APPDIR"
emit_plist "$APPNAME" "$APPDIR"
ln -s "../../$BINARYNAME Helper.app/Contents/MacOS" "$APPDIR/MacOS"
cp "$APPDIR/MacOS/$BINARYNAME" "$APPDIR/MacOS/$APPNAME"
chmod +x "$APPDIR/MacOS/$APPNAME" APPNAME="$BINARYNAME Helper (Renderer)"
APPDIR="$APPNAME.app/Contents"
mkdir -pv "$APPDIR"
emit_plist "$APPNAME" "$APPDIR"
ln -s "../../$BINARYNAME Helper.app/Contents/MacOS" "$APPDIR/MacOS"
cp "$APPDIR/MacOS/$BINARYNAME" "$APPDIR/MacOS/$APPNAME"
chmod +x "$APPDIR/MacOS/$APPNAME"

C# .NET core Avalonia 11.0版本,发布linux和MAC的简单记录的更多相关文章

  1. HMS Core 6.3.0 版本发布公告

    新增内容风控检测,若用户输入内容不符合国家法律法规要求,风控将会拦截,无法翻译手语动作. 查看详情>> 新增受众同步至HUAWEI Ads功能,实现精准投放高价值用户,提升广告效率: 新增 ...

  2. HMS Core 6.4.0版本发布公告

    支持转化事件回传至华为应用市场商业推广,便捷归因,实时调优: 卸载分析新增卸载前路径分析,深度剖析卸载根因. 查看详情 新增关键帧能力,通过关键帧点可实现图片.文字等位置移动.旋转等动态效果,比如文字 ...

  3. HMS Core 6.8.0版本发布公告

    分析服务 ◆ 游戏行业新增"区服分析"埋点模板及分析报告,支持开发者分服务器查看用户付费.留存等指标,可进一步评估不同服务器的玩家质量: ◆ 新增营销活动报告,可查看广告任务带来的 ...

  4. 【AngularJS】 2.0 版本发布

    [AngularJS] 2.0 版本发布 w5cValidator[AngularJS] 2.0 版本发布   w5cValidator 插件基于angular原有的表单验证,在原有的基础上扩展了一些 ...

  5. 意料之外,情理之中,Spring.NET 3.0 版本发布-

    意料之外,情理之中,Spring.NET 3.0 版本发布- 备受社区和企业开发者广泛关注的Spring.NET在上周发布了3.0版本,并且目前已经保持着持续的更新,让我们一起来看一看他究竟发布了哪些 ...

  6. Kafka 1.0版本发布

    Kafka 1.0版本发布 1.0.0 2017年11月1日发布 源码下载: kafka-1.0.0-src.tgz(asc,sha512) 二进制下载: Scala 2.11 - kafka_2.1 ...

  7. CAP 5.0 版本发布通告

    前言 今天,我们很高兴宣布 CAP 发布 5.0 版本正式版.同时我们也很高兴的告诉你 CAP 已经有越来越多的用户并且变得越来越流行. 在 5.0 版本中,我们主要致力于更好的支持 .NET 5 以 ...

  8. 支持边云协同终身学习特性,KubeEdge子项目Sedna 0.3.0版本发布!

    摘要:随着边缘设备数量指数级增长以及设备性能的提升,边云协同机器学习应运而生,以期打通机器学习的最后一公里. 本文分享自华为云社区<支持边云协同终身学习特性,KubeEdge子项目Sedna 0 ...

  9. Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持

    Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持. Spring.Net.Framework,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开 ...

  10. go-wingui 2018 全新 v2.0 版本发布,包含重大更新!

    go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...

随机推荐

  1. Apache Flink 在京东的实践与优化

    ​简介: Flink 助力京东实时计算平台朝着批流一体的方向演进. 本文整理自京东高级技术专家付海涛在 Flink Forward Asia 2020 分享的议题<Apache Flink 在京 ...

  2. [Go] golang 两个数组 list 的合并方式

    s := append([]int{1, 2}, []int{3, 4}...) Tool:在线Golang代码运行 Cool:在线 AI 编程助手 https://stackoverflow.com ...

  3. [MySQL] 导入数据库和表的两种方式

    如果是导入 mysqldump 导出的 sql 文件,使用 mysql 命令再导入就可以了. 下面是另一种可选方式: use xxdb source /var/lib/mysql/xxtable.sq ...

  4. 2019-9-27-微软的-P2P-下载方式

    title author date CreateTime categories 微软的 P2P 下载方式 lindexi 2019-09-27 09:44:44 +0800 2019-09-27 09 ...

  5. 2019-9-2-C#-设计模式-责任链

    title author date CreateTime categories C# 设计模式 责任链 lindexi 2019-09-02 12:57:37 +0800 2018-2-13 17:2 ...

  6. 使用亚马逊AWS云服务器进行深度学习——免环境配置/GPU支持/Keras/TensorFlow/OpenCV

    前言 吐槽:由于科研任务,需要在云端运行一个基于神经网络的目标识别库,需要用到GPU加速.亚马逊有很多自带GPU的机器,但是环境的配置可折腾坏了,尤其是opencv,每次总会出各种各样的问题! 无奈中 ...

  7. SpringBoot3.1.5对应新版本SpringCloud开发(2)-Eureka的负载均衡

    Eureka的负载均衡 负载均衡原理 负载均衡流程 老版本流程介绍 当order-servic发起的请求进入Ribbon后会被LoadBalancerInterceptor负载均衡拦截器拦截,拦截器获 ...

  8. 安装conda搭建python环境(保姆级教程)

    参考文档: 安装conda搭建python环境(保姆级教程)

  9. ruby 定时器 rufus-scheduler

    安装 gem install rufus-scheduler ruby #!/usr/bin/env ruby require 'rubygems' require 'rufus-scheduler' ...

  10. rubymineIDE配置启动

    debug启动 debug启动 安装插件 报错: 网络问题 下载 ruby-debug-ide-2.3.1 解压到 /home/haima/.rvm/gems/ruby-2.3.8/gems/