gpt4 book ai didi

xaml - XAML 编译在运行时的工作方式

转载 作者:行者123 更新时间:2023-12-02 01:22:16 32 4
gpt4 key购买 nike

简短版:

如果不使用 xamlc 预编译 xaml,应用程序中捆绑了什么以在运行时编译 xaml?它是否取决于 xamarin.forms nugets 之外的应用构建时的当前工具集?

长版:

我们有一个继承自 ListView 的自定义元素。我们在 xaml 中使用此元素,并在 xaml 中设置 CachingStrategy,这 obviously is a problem , 和 documented properly .但在我们这样做的时候(2015 年 12 月左右)还不知道。

使用当时可用的 xamarin 工具集构建应用程序(不确定版本,因为在网站上我只能返回到 2016 年 3 月的版本),该应用程序运行正常,没有崩溃。

现在,构建相同的代码库(注意:xamarin 表单 nuget 版本等没有变化),应用程序崩溃。启用 XAML 预编译阻塞问题,所以我们做对了,应用程序可以运行。

但是 - 这是否意味着构建工具链的某些部分已与应用合并?如果是这样的话,我们如何控制构建过程的版本稳定性?

最佳答案

XAMLC 生成在 XamlCTask 构建步骤中添加到程序集中的 IL:

此工具包含在 Xamarin 安装程序中,当然由版本化安装程序分发,因此如果您已经是工具链版本化,则无需执行任何其他操作...

恕我直言,工具链版本控制应至少包括所有已安装的 Xamarin 组件、Visual Studio 组件、MSBuild 工具、Xcode、Xcode 命令行工具、Android API SDK(工具、构建-工具、平台工具)等...

即如果您有新员工入职或开发人员硬盘崩溃或需要部署新的 CI 服务器,您今天如何重建该环境以使其与您的其他环境相匹配?如果您从头开始进行临时安装,每次都下载,那么您可能做错了 ;-)

作为 DevOps,我个人和我的客户都会对所有工具安装程序进行离线备份。这包括操作系统数据驱动器的快照,其中包括开发人员环境、CI 环境、 key 签名环境等...

与这些工具版本(操作系统、工具和 Nugets)相关的信息被放置在一个 PowerShell Desired State Configuration 文件中,该文件被添加到解决方案 (.sln) 根目录并且像任何其他版本一样进行版本控制源文件。

如果我每次都需要重建开发/构建环境,运行 DSC 会将完整的环境恢复到物理盒子或 VM ... 对于 OS-X,通常我们创建并离线存储驱动器的 .IMG(我们还创建 VM 以便恢复)。

关于xaml - XAML 编译在运行时的工作方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39252702/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com