本文将给大家一个 System.Xaml 的独立项目,此项目代码和 WPF 仓库的 System.Xaml 项目相同,但本文的 System.Xaml 的独立项目不依赖 WPF 其他项目,构建方便,构建速度快,搭配 System.Xaml.Demo 项目更方便调试

本文是对新入手开发 WPF 框架的开发者友好的,只要对 WPF 有一些了解即可入手。本文的 WPF 框架开发,指的是开发 WPF 这个框架,开发 WPF 本身,而不是开发基于 WPF 框架的应用

在 WPF 中,所有编写的 XAML 代码,最终都会依赖 System.Xaml 库进行执行。也因此 System.Xaml 就是 WPF 的 XAML 的核心入口。但 System.Xaml 从命名上可以看到,这是和 WPF 框架没有强相关的库,这是一个专门用来处理 XAML 相关的库

也因为 System.Xaml 库是很独立的,因此 WPF 官方开发者 Ryland 想要独立分发 System.Xaml 库,请看 Consider shipping System.Xaml as a separate netstandard package · Issue #4140 · dotnet/wpfSystem.Xaml platform independence · Issue #3543 · dotnet/wpf

本文的实现就是将 System.Xaml 库独立,干掉所有对 WPF 仓库依赖,放在我的 GitHub 仓库里面。只需要从 GitHub 拉下我的代码,即可获取独立的 System.Xaml 库,此时的构建和调试都比放在 WPF 仓库方便。当然缺点是没有更上 WPF 的源代码版本,需要大家自己手动去拷贝最新的代码

以下是获取和构建的方法

在开始之前,先确定你已经安装了 VisualStudio 2019 或 VisualStudio 2022 或更高版本,以及 Git 命令行工具

先从 GitHub 或 Gitee 使用以下命令行拉下代码,请打开你的本机命令行工具,如在运行窗口输入 cmd 即可打开命令行窗口。当然,如果连这一步都不知道如何做的,那还是劝退吧

在命令行窗口,先使用 cd 命令进入某个文件夹,这个文件夹将会用来存放 System.Xaml 的独立项目代码

cd 某个用来存放 System.Xaml 的独立项目代码的文件夹
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin cae701f994ad396429303e7ec249b9ee4a693839

以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin cae701f994ad396429303e7ec249b9ee4a693839

获取代码之后,进入 System.Xaml.Test 文件夹

打开 System.Xaml.Test\System.Xaml.Demo\System.Xaml.Demo.sln 即可看到 Demo 和 System.Xaml 库,尝试设置 System.Xaml.Demo 作为启动项目,然后按下 F5 即可构建运行

欢迎大家参与 WPF 框架的开发

当前的 WPF 在 https://github.com/dotnet/wpf 完全开源,使用友好的 MIT 协议,意味着允许任何人任何组织和企业任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。在仓库里面包含了完全的构建逻辑,只需要本地的网络足够好(因为需要下载一堆构建工具),即可进行本地构建


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E6%A1%86%E6%9E%B6%E5%BC%80%E5%8F%91-%E8%B0%83%E8%AF%95%E5%92%8C%E5%BC%80%E5%8F%91-System.Xaml-%E7%9A%84%E7%8B%AC%E7%AB%8B%E9%A1%B9%E7%9B%AE%E6%96%B9%E6%B3%95.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

无盈利,不卖课,做纯粹的技术博客

以下是广告时间

推荐关注 Edi.Wang 的公众号

欢迎进入 Eleven 老师组建的 .NET 社区

以上广告全是友情推广,无盈利