我在使用Skia/WPF运行时用Uno编译我的项目时遇到了问题。我会使用UWP,但我需要一些UWP限制的硬件访问权限。这是我的.csproj文件,从repo中的Skia WPF示例和来自Uno Calculator的GTK项目松散地粘贴在一起:
<Project Sdk="MSBuild.Sdk.Extras/2.0.54">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>net472;netcoreapp3.1</TargetFrameworks>
<UseWPF>true</UseWPF>
<Platforms>AnyCPU;x86;x64</Platforms>
<UnoSourceGeneratorUseGenerationHost>true</UnoSourceGeneratorUseGenerationHost>
<UnoSourceGeneratorUseGenerationController>false</UnoSourceGeneratorUseGenerationController>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)'=='net472'">
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Uno.SourceGenerationTasks" Version="3.0.0-dev.16" />
<PackageReference Include="Uno.UI.Skia.Wpf" Version="3.2.0-dev.206" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
</ItemGroup>
<Import Project="..\UiProject.Shared\UiProject.Shared.projitems" Label="Shared" />
</Project>我收到以下错误:
1>------ Build started: Project: UiProject.Skia.Wpf, Configuration: Debug x86 ------
1><repo>\UiProject.Skia.Wpf\UiProject.Skia.Wpf.csproj : warning NU1701: Package 'SkiaSharp.Views 2.80.0' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.
1><repo>\UiProject.Skia.Wpf\UiProject.Skia.Wpf.csproj : warning NU1701: Package 'SkiaSharp.Views 2.80.0' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.
1><repo>\UiProject.Shared\App.xaml.cs(25,19,25,22): error CS0263: Partial declarations of 'App' must not specify different base classes
1><repo>\UiProject.Shared\MainPage.xaml.cs(24,33,24,41): error CS0263: Partial declarations of 'MainPage' must not specify different base classes
1><repo>\UiProject.Shared\App.xaml.cs(48,33,48,43): error CS0115: 'App.OnLaunched(LaunchActivatedEventArgs)': no suitable method found to override
1>Done building project "UiProject.Skia.Wpf.csproj" -- FAILED.
1><repo>\UiProject.Shared\App.xaml.cs(25,19,25,22): error CS0263: Partial declarations of 'App' must not specify different base classes
1><repo>\UiProject.Shared\MainPage.xaml.cs(24,33,24,41): error CS0263: Partial declarations of 'MainPage' must not specify different base classes
1><repo>\UiProject.Shared\App.xaml.cs(48,33,48,43): error CS0115: 'App.OnLaunched(LaunchActivatedEventArgs)': no suitable method found to override
1>Done building project "UiProject.Skia.Wpf.csproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 4 up-to-date, 0 skipped ==========看起来XAML是用.NET的程序集编译的,但代码是用Uno的程序集编译的。我不确定如何解决这个问题。是否有任何实际的Skia WPF示例可以参考,即使用NuGet引用?
发布于 2020-10-21 15:57:41
不要担心Visual Studio模板,它已经过时了。取而代之的是,使用dotnet new模板,将生成正确的项目。请参阅VSCode setup instructions。
https://stackoverflow.com/questions/64457661
复制相似问题