更新到.net8后,在xaml编辑器中引用System.Windows.Controls

goucqfw6  于 2023-11-20  发布在  .NET
关注(0)|答案(2)|浏览(190)

.NET RID从.NET8更改,因此我修改了csproj文件中的PropertyGroup,如下所示。

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
  <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
  <RootNamespace>Test</RootNamespace>
  <ApplicationManifest>app.manifest</ApplicationManifest>
  <Platforms>x64</Platforms>
  <RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
  <PublishProfile>win-$(Platform).pubxml</PublishProfile>
  <UseWinUI>true</UseWinUI>
  <EnableMsixTooling>true</EnableMsixTooling>
</PropertyGroup>

字符串
我还修改了pubxml文件的名称和格式。
在此之后,在xaml编辑器中,它最初通常引用Microsoft.UI.Xaml.Controls命名空间,但在某个时候,不知道为什么,引用System.Windows.Controls命名空间时发生错误,并且自动完成不起作用。


的数据



错误没有描述,但通过鼠标并查看Grid的类型,您可以看到它是“System.Windows.Controls.Grid”。
当我编译它时,它工作正常,但由于编辑器中的错误,很难编码。
有谁知道为什么会出现这个bug?

e3bfsja2

e3bfsja21#

以下是我从.NET 7升级到.NET 8的有效步骤:
1.安装.NET 8 SDK。“

  • 编辑您的 *.csproj档案。
  • Windows 10.0.19041.0操作系统下的一个示例
  • RuntimeIdentifiers:win-x86;win-x64; win-arm 64的操作系统
  • PublishProfile:win-$(平台).pubxml
  • 添加UseRidGraph并将其设置为true

举例来说:

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
  <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
  <RootNamespace>WinUI3App4</RootNamespace>
  <ApplicationManifest>app.manifest</ApplicationManifest>
  <Platforms>x86;x64;ARM64</Platforms>
  <RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
  <PublishProfile>win-$(Platform).pubxml</PublishProfile>
  <UseRidGraph>true</UseRidGraph>
  <UseWinUI>true</UseWinUI>
  <EnableMsixTooling>true</EnableMsixTooling>
  <Nullable>enable</Nullable>
</PropertyGroup>

字符串
这些步骤可能会在以后版本的WindowsAppSDK中更改。请从发行说明中查看。

llew8vvj

llew8vvj2#

问题出在分析器上。我不记得确切的名字了,但它是System.Windows.Forms的分析器。当我删除CommunityToolkit.Common 8.2.2 nuget包时,该分析器消失了,bug也消失了。当我重新安装该nuget包时,该分析器没有重新出现,但它似乎与该nuget包有关。

相关问题