.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. WPF 使用 ManipulationDemo 工具辅助调试设备触摸失效问题

    本文将和大家介绍我所在的团队开源的 ManipulationDemo 工具.通过 ManipulationDemo 工具可以提升调试设备触摸失效的效率 此工具在 GitHub 上完全开源,请看 htt ...

  2. 2019-11-21-win10-uwp-在-Grid-接收键盘消息

    title author date CreateTime categories win10 uwp 在 Grid 接收键盘消息 lindexi 2019-11-21 08:51:51 +0800 20 ...

  3. 006_Orcad创建Hetergeneous分裂元件

    006_Orcad创建Hetergeneous分裂元件 以169脚的EMMC为例: 分为两部分,用到的引脚和NC的引脚. 先画一个框,依据引脚功能添加引脚.A部分做好,做B部分.引脚多,可以用pin ...

  4. C++编程英语词汇

    abstract抽象的 abstraction抽象性.抽象件 access访问 access level访问级别 access function访问函数 adapter适配器 address地址 ad ...

  5. vue项目hbuilder打包-微信登录调取手机微信登录权限

    这个笔记得做好. 1.vue页面的点击事件 import {login,loginy,wxLog,wxLogin,logout} from '../network/login' wxloginBtn( ...

  6. fastreport .net打印普通报表

    fastreport .net打印普通报表 前言: .net代码层先不记录在这,后续会单独写一篇博客来记录. 直接在工具上进行功能点的实现 一.效果图 二.功能点 分页 分页小计 金额大写 三.功能点 ...

  7. Mybatis学习三(动态sql语句)

    动态sql语句主要为以下语句 1.动态SQL:if 语句2.动态SQL:if+where 语句3.动态SQL:if+set 语句4.动态SQL:choose(when,otherwise) 语句5.动 ...

  8. ETSI GS MEC 013,UE 位置 API

    目录 文章目录 目录 版本 功能理解 Relation with OMA APIs Relation with OMA API for Zonal Presence Relation with OMA ...

  9. PageOffice 在线打开 word 文件并添加水印

    一.服务器端方法插入水印 1.插入文字水印 WordDocument doc = new WordDocument(); //添加水印 ,设置水印的内容 doc.getWaterMark().setT ...

  10. 【漏洞复现】用友NC-Cloud系统uploadChunk存在任意文件上传漏洞

    阅读须知 花果山的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站.服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作.利用此 ...