Wine Mono 环境安装并运行.Net WPF
文章目录
- 介绍
- 测试环境
- 安装环境
- 安装 WineHQ5.0
- 排查问题
- add-apt-repository 找不到命令
- 安装 add-apt-repository 包
- python-software-properties 包不存在时
- add-apt-repository 出现异常异常 NoDistroTemplateException
- 安装WineTricks(Wine安装助手)
- 安装WineTricks
- 利用 winetricks 安装mono、gecko
- 手动安装 mono、gecko
- 下载mono、gecko
- 手动安装mono、gecko
- 安装Wine字体
- 安装必要的字体
- 支持显示中文字体
- 附录
- wine 的一些命令
- wine-mono 安装对照表
- wine-gecko 安装对照表
- wine 32位64位架构切换
- Wine 中 PREFIX 与 ARCH 关系
- 字体问题
- 参考链接
介绍
因项目需要,希望公司的产品能够在国产Linux操作系统中运行。在安装环境时遇到的一些坑跟心得,记下来分享给大家。
测试环境
Linux 系统 : 统信UOS
.Net运行时: .Net Framework 4.5.2
安装环境
安装 WineHQ5.0
# 参考官方教程: https://wiki.winehq.org/Ubuntu_zhcn # 安装WineHQ# 开启32位架构支持
sudo dpkg --add-architecture i386 # 下载仓库密钥
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key# 添加WineHQ 仓库源
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/debian/ stretch main'# 更新apt-get缓存
sudo apt update # 安装WineHQ
sudo apt install --install-recommends winehq-stable
排查问题
add-apt-repository 找不到命令
遇到这个问题尝试安装add-apt-repository
相关包, 但出现一些另外的问题, 最终直接利用文件的方式添加apt仓库源, 解决方法如下:
# 切换到root
su - # 添加apt仓库源
echo "deb https://dl.winehq.org/wine-builds/debian/ stretch main" > /etc/apt/sources.list.d/winehq.list# 更新apt仓库索引
sudo apt update
安装 add-apt-repository 包
## 安装Package
## python-software-properties、software-properties-commonsudo apt-get install python-software-properties
sudo apt-get install software-properties-common
sudo apt-get update
python-software-properties 包不存在时
请用以下方法处理:
这时需要修改/etc/lsb-release文件,注释掉原内容,然后追加如下修改,仅供参考:
#DISTRIB_ID=Deepin
#DISTRIB_RELEASE="15.11"
#DISTRIB_DESCRIPTION="Deepin 15.11"
#DISTRIB_CODENAME=stableDISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
这样就可以使用add-apt-repository命令了,不会报错误。
- 参考 提示sudo: add-apt-repository:找不到命令的解决方法
add-apt-repository 出现异常异常 NoDistroTemplateException
# aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Deepin/n/a# 修改文件 (未测试)
sudo vim /usr/share/python-apt/templates/Deepin.info# 将 Suite=XXXX 改为 Suite=Stable
安装WineTricks(Wine安装助手)
安装WineTricks
默认情况下,apt
包管理器的Winetricks
不是最新的,如果需要安装最新的请按以下方式:
# 参考链接 https://wiki.winehq.org/Winetricks# 下载winetricks
cd "${HOME}/Downloads"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks# 安装 winetricks 用到的 package
sudo apt install cabextract unzip p7zip wget# 安装 winetricks GUI 操作界面 (可选)
sudo apt install zenity # 将 winetricks 拷贝的 系统
sudo cp winetricks /usr/bin/winetricks
利用 winetricks 安装mono、gecko
在Linux中,mono主要用来跑.Net Framework的程序, gecko 用来支持程序中嵌入HTML (这里也一起安装了, 防止出现其他问题)
# 运行winetricks
winetricks # 正常情况下如果你没有安装mono、gecko会提示你安装, 如下图
点击安装之后可以通过以下命令查看.
# wine 下的程序管理
wine uninstaller
手动安装 mono、gecko
下载mono、gecko
# 下载 wine-mono 下载网址 https://dl.winehq.org/wine/wine-mono/
curl https://dl.winehq.org/wine/wine-mono/6.3.0/wine-mono-6.3.0-x86.msi --output wine-mono-6.3.0-x86.msi# 下载 wine-gecko 下载网址 http://mirrors.ustc.edu.cn/wine/wine/wine-gecko/
curl http://mirrors.ustc.edu.cn/wine/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86.msi --output wine-gecko-2.47.2-x86.msi# 对于 64位wine 32位跟64位的 gecko 都必须安装
curl http://dl.winehq.org/wine/wine-gecko/2.47.1/wine-gecko-2.47.1-x86_64.msi --output wine-gecko-2.47.1-x86_64.msi
如果提示 Wine cannot find the ncurses library (libncurses.so.5).
则安装ncurses
sudo apt install libncurses5 libncurses5:i386 # 安装32位与64位curses
手动安装mono、gecko
# 安装mono
sudo wine start wine-mono-6.3.0-x86.msi# 安装gecko
sudo wine start wine-gecko-2.47.2-x86.msi
sudo wine start wine-gecko-2.47.1-x86_64.msi
点击安装之后可以通过以下命令查看.
# wine 下的程序管理
wine uninstaller
安装Wine字体
安装必要的字体
# 安装 必须的字体
winetricks corefonts
支持显示中文字体
这里参考网上的大佬们写的文章, 拷贝 simsun.ttc
(宋体)跟msyh.ttc
(微软雅黑) 到 wine 环境目录下再注册就可以了,但是我试了很多次都还不行。
最终通过如下方法成功显示出中文:
# 支持富文本框控件显示 (顺序安装, 防止出错)
# 1. 先安装 richtx32
winetricks richtx32
# 2. 再安装 riched30
winetricks riched30 # 这里可能需要FQ才能下载, 已再 附录中 上传了, 可直接下载
# 3. 再安装 riched20
winetricks riched20 # 这里可能需要FQ才能下载, 已再 附录中 上传了, 可直接下载# 安装字体
winetricks cjkfonts
以下为成功打开WPF程序。
附录
wine 的一些命令
# 查看 wine 配置
winecfg# 引导 根据指定架构初始化 默认Prefix
wineboot# 查看 wine 安装的库
wine uninstaller# wine 打开注册表
wine regedit # 注册字体
cp your_font_file.ttc ~/.wine/drive_c/window/Fonts/
regedit ~/.wine/drive_c/window/Fonts# 安装msi安装包
wine start package.msi # 或 wine msiexec /i package.msi# 其他命令参考 https://wiki.winehq.org/List_of_Commands
wine-mono 安装对照表
wine与mono对照表用来对照装mono, 譬如说wine的版本为5.0, 则mono版本应该选择安装 4.9.4 版本 或 最新6.3.0
注意: 如果框架中使用WPF则mono版本必须>= 5.0.0
wine-gecko 安装对照表
wine与gecko对照表用来对照装gecko, 譬如说wine的版本为5.0, 则Gecko 版本应该选择安装 2.47.1 版本 或 2.47.2
wine 32位64位架构切换
# 启用wine 多架构
dpkg --print-foreign-architectures | grep -q i386 && sudo dpkg --add-architecture i386# 移动源64位配置到.wine64 然后切换成32位 并重新引导
mv ~/.wine ~/.wine64 && WINEARCH=win32 wineboot
参考: How do I create a 32-bit WINE prefix? (如果创建 32位wine前缀与架构)
Wine 中 PREFIX 与 ARCH 关系
如下为个人理解.
Prefix 相当于一个环境, 环境中包含一个Winodw镜像,可通过Prefix区别32位跟64位环境。
ARCH 表示此环境是32位或者64位。
根据前缀(Prefix)基于架构(Arch)构建环境,并且前缀下的环境是相互隔离的。
通过执行前缀(Prefix)与架构(ARCH) 则可以实现指定环境下运行程序。
当我们需要某个在32位环境下运行程序或者要在32位环境下安装DLLs等…
# 在32位环境下运行程序
WINEPREFIX=~/.wine32 WINEARCH=win32 your_32bit_executable.exe# 在64位环境下运行程序
WINEPREFIX=~/.wine WINEARCH=win64 your_64bit_executable.exe
ARCH 表示此环境是32位或者64位
通过执行前缀(Prefix)与架构(ARCH) 则可以实现指定环境下运行程序,并且前缀(Prefix)之间的程序都是相互隔离的。
当我们需要某个在32位环境下运行程序或者要在32位环境下安装DLLs等…
# 在32位环境下运行程序
WINEPREFIX=~/.wine32 WINEARCH=win32 your_32bit_executable.exe# 在64位环境下运行程序
WINEPREFIX=~/.wine WINEARCH=win64 your_64bit_executable.exe
字体问题
Wine中中文显示为错误的解决方案
ubuntu下通过wine安装windows软件(以微信和Adobe Acrobat Pro为例)
解决Ubuntu下wine打开微信无法看到输入框内容
参考链接
A developers guide to running WPF apps on Linux with .NET Core and Wine (在Wine中运行.NetCoreWPF程序)
linux下路径名中含空格如何处理
dotnet 在 UOS 国产系统上安装 Mono 开发工具的方法
wine —— windows软件移植到Linux系统
Wine Mono 环境安装并运行.Net WPF相关推荐
- hadoop,pySpark环境安装与运行实战《一》
一.环境准备 环境最好再mac或者liunx环境搭建最为友好,不建议在windows上折腾. 1)安装java jdk 下载java jdk 并在~/.bash_profile配置,jdk mac路 ...
- asp.net core linux环境,ASP.NET Core Linux环境安装并运行项目
如何更新Android SDK和Build Tool 1. 运行命令 android 2. 勾选并安装需要的版本 3. 完成! MSP430F149学习之路--按键 代码一: /*********** ...
- linux Fedora安装桌面,CentOS6.x\Red Hat\Fedora\Linux 安装Wine 1.7.48 桌面运行环境教程
Open Source Software for running Windows applications on other operating systems Wine ("Wine Is ...
- linux下运行class,在Linux下可用Wine安装和运行AIclass、希沃白板5
在Linux操作系统下可用Wine安装和运行AIclass.希沃白板5.exe文件,它们是Windows下的软件,在Linux中借助Wine就可以使用AIclass和希沃白板5了,已亲测有效. 说明 ...
- Ubuntu 18.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+SLAM相关库的安装
文章目录 一.换源 二.安装三方库 2.1 安装必要的依赖项 2.2 安装Pangolin 2.3 安装OpenCV3 2.4 安装Eigen3 三.安装ORB-SLAM2 四.安装ORB-SLAM3 ...
- python详细安装教程视频-如何安装Python运行环境Anaconda?(视频教程)
本视频教程针对Windows 7平台,集成3.6版本Python的Anaconda录制. 根据我多次线下编程工作坊获得的反馈经验,发现Python初学者居然在环境安装步骤,就很可能遭受挫折. 如果没有 ...
- linux go语言运行环境,安装Go语言运行环境
安装Go运行环境,如果从旧版本的Go进行升级,必须先删除现有版本. 1. 二进制包安装 下载包 cd /usr/local/src wget https://storage.googleapis.co ...
- Linux下安装Dubbo运行环境
Linux下安装Dubbo运行环境 1.1.1 安装jdk zk首先需要安装jdk环境. yum -y install glibc.i686 #jdk依赖glibc mkdir /u ...
- 安装python环境与运行_专栏G|轻松学Python01:Python环境搭建与运行
原标题:专栏G|轻松学Python01:Python环境搭建与运行 | Cora编撰 | 和[PM10分男人]一起成长 Python是一个开源且功能强大的解释型语言,应用领域比较广泛,如今越来越受重视 ...
最新文章
- git本地ben远程分支_git 本地分支与远程分支
- 移动医疗未来还有多少红利?
- Android Notification状态栏通知
- android studio新建layout,【Android Studio安装部署系列】十六、Android studio在layout目录下新建子目录...
- 硬件:选购CPU和显卡需了解的参数,TDP、SDP、ACP、GCP、TBP是什么?
- mysql in优化_MySQL的一次优化记录 (IN子查询和索引优化)
- 红帽:IaaS与PaaS齐头并进
- 跳转定义_HTML中的超级链接和锚点跳转
- python是什么意思-python中class是什么意思
- 一个农民矿工的悲情遗书
- java grpc简单例子
- python几次方_Python中表示某个数几次方的方法
- 利用Excel爬取网页数据
- A. Vasya the Hipster
- 支付宝给微信好友转账!转了?好像又没转
- c语言运算符 amp 的意思,C语言运算符是什么意思
- Java中合并多个视频文件转换一个新的视频
- java注解检验集合对象_Java 对list对象进行属性校验
- 企业薪酬管理的“七大通病”
- 2022年合束器市场前景分析及研究报告
热门文章
- java2.0qq同步_qq同步助手2.0 apk下载
- 如何提高程序的可移植性
- nginx下强制跳转到www域名,域名重定向
- 怎么把图片拼接成长图,3招教你快速处理
- vc的含义(与c的区别)
- NBOJv2 Problem 1009 蛤玮的魔法(二分)
- frustum pointnets训练代码学习笔记——kitti_object.py
- 第一篇:初学编程对未来的展望
- 格式: echo -e \033[字背景颜色;字体颜色m字符串\033[0m
- Vue中的this.$nextTick方法的使用 [前端][Vue框架]