gpt4 book ai didi

c# - 在csproj文件中配置XamlRuntime和DefaultXamlRuntime意义

转载 作者:行者123 更新时间:2023-12-05 02:30:29 27 4
gpt4 key购买 nike

我试图弄清楚以下 csproj 配置的含义。我用谷歌搜索,但没有找到 <XamlRuntime> 的结果或 $(DefaultXamlRuntime) .

<ItemGroup>
<Page Update="Views\SetupTests.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
</ItemGroup>

最佳答案

引入 XamlRuntimeDefaultXamlRuntime 属性是因为有不同的flavors(或框架或运行时 - 他们仍在讨论正确的术语)需要不同编译器和不同构建工具的 XAML。原因是要区分 WPF 和即将推出的 WinUI,它们都使用 XAML。这是 GitHub 上针对 WPF 所做更改的问题:

For now, we'll keep the globbing in WPF targets, and add the appropriate Item metadata and project property, so that vs tooling can distinguish WPF from WinUI in .NET core projects.

此问题源于为 WinUI 项目添加 globbing 支持的另一个问题,因此项目文件不会针对添加的每个 XAML 文件进行修改,就像在旧的 .NET Framework 项目中一样。

这个问题仍然悬而未决,还有一个针对 WinUI 和 .NET SDK 的更通用的建议。


WPF 的 DefaultXamlRuntime 的值在 Microsoft.NET.Sdk.WindowsDesktop.targets 中定义:

<DefaultXamlRuntime Condition="'$(DefaultXamlRuntime)'==''">Wpf</DefaultXamlRuntime>

proposal for generic globbing ,还提到了 WinUI 的默认运行时:

<DefaultXamlFramework Condition="'$(DefaultXamlFramework)'=='' and $(UseWpf)'!='true'">WinUI</DefaultXamlFramework>

正如@Alp 所提到的,存在或曾经存在与复制粘贴 XAML 文件相关的问题,这些问题会导致在项目文件中创建多余的元数据,而这可能正是您所经历的。

关于c# - 在csproj文件中配置XamlRuntime和DefaultXamlRuntime意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71836685/

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