我一直在使用NET MAUI完成的工具。现在我想自动化Windows UI,但我不知道如何做到这一点。我尝试下载FlaUI NuGet,但无法让它工作,因为它需要项目是Net7.0-windows
。所以我创建了新的项目与Net7.0-windows的参考,但我在Net Maui的参考得到损坏。
MauiApp1.csproj(项目):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net7.0-android;net7.0-ios;net7.0-maccatalyst</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net7.0-windows10.0.19041.0</TargetFrameworks>
<!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
<!-- <TargetFrameworks>$(TargetFrameworks);net7.0-tizen</TargetFrameworks> -->
<OutputType>Exe</OutputType>
<RootNamespace>MauiApp1</RootNamespace>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
<!-- Display name -->
<ApplicationTitle>MauiApp1</ApplicationTitle>
<!-- App Identifier -->
<ApplicationId>com.companyname.mauiapp1</ApplicationId>
<ApplicationIdGuid>67771146-3ce8-452f-860b-3669d8a9e4a0</ApplicationIdGuid>
<!-- Versions -->
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
</PropertyGroup>
<ItemGroup>
<!-- App Icon -->
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />
<!-- Splash Screen -->
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />
<!-- Images -->
<MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />
<!-- Custom Fonts -->
<MauiFont Include="Resources\Fonts\*" />
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
</ItemGroup>
</Project>
项目ClassLibrary1.csproj(项目):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FlaUI.Core" Version="4.0.0" />
<PackageReference Include="FlaUI.UIA3" Version="4.0.0" />
</ItemGroup>
</Project>
当前如果:
我得到以下错误:
我的问题是如何在NET MAUI中引用MauiApp1.csproj中的ClassLibrary1.csproj?有什么方法可以让这个设置工作吗?
2条答案
按热度按时间h7wcgrx31#
如果你的
ClassLibrary1
项目支持所有平台,那么你也应该把这几行添加到你的ClassLibrary1.cspoj
文件中。如果你的
ClassLibrary1
项目只支持windows,那么你可以做两件事;1.如果你的MAUI项目只在windows上运行,那么在你的
MauiApp1.csproj
文件中你应该删除这些行;1.如果你的MAUI应用程序要同时支持其他平台,你应该单独添加你的平台特定库。我正在为我的多平台MAUI应用程序使用这个。
Solution Explorer > Your MAUI Project > Dependencies > Right Click Your Platform > Add reference
然后打开你的
MauiApp1.csproj
文件,找到你的引用,给你的引用加上一个条件,你的引用应该是这样的结尾;我已经做了一个例子。我创建了一个名为
MauiApp1
的MAUI项目和一个名为MauiLib1
的类库。MauiLib1
只支持Windows平台,MauiApp1
支持所有平台。我已经将MauiLib1
添加到MauiApp1
中,但仅适用于Windows平台。所需的.csproj
文件和特定于平台的代码可以在下面看到。MauiApp1.csproj
MauiLib1.csproj
MauiLib1
项目中的一个简单类。因此我们可以进行测试。MauiApp1
项目的默认MainPage.xaml.cs
代码。在这里您可以看到Windows特定的代码。如果没有这些条件,您的应用程序将崩溃。因为将不会有该平台的引用。第一节第一节第一节第一节第一次
别忘了在Visual Studio上更改您当前的平台。这一点非常重要。否则,您的平台特定代码将无法编译。
我删除了代码中与问题无关的部分,这样大家就可以清楚地看到我做了哪些修改。
如果库支持多个平台,则可以在
.csproj
文件中向引用添加更多条件。pqwbnv8z2#
我对FlaUI知之甚少,但删除
MauiApp1.csproj
中的这一行可能会起作用:<TargetFrameworks>net7.0-android;net7.0-ios;net7.0-maccatalyst</TargetFrameworks>