.Net maui 应用程序构建但在添加单元测试项目后未显示在 Windows 上

问题描述 投票:0回答:0

我有一个 .net maui 项目在使用 .net7.0 添加单元测试项目 (xUnit 2.4.2) 后停止出现在 Windows 平台上(在 Android 上挂起热重载初始化),我引用了我的 .net maui 应用程序作为我的测试项目的依赖项,在 Youtube 上关注 Gerald Versluis这篇文章 并遵循所有步骤。我只在调试模式下测试过。

我将 UseMaui 属性添加到测试 csproj 文件

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseMaui>true</UseMaui>
    <IsPackable>false</IsPackable>
  </PropertyGroup>

我已将 .net7.0 添加为 targetFramework 并更新了 maui app csproj 文件上 OutputType 属性的条件:

    <PropertyGroup>
    <!--If not running unit tests-->
    <!--
    <TargetFrameworks>net7.0-ios;net7.0-maccatalyst;net7.0-android33.0</TargetFrameworks>
    <OutputType>Exe</OutputType>
    -->    
    <!--If writing and running unit tests-->

    <TargetFrameworks>net7.0-ios;net7.0-maccatalyst;net7.0-android33.0;net7.0</TargetFrameworks>
    <OutputType Condition="'$(TargetFramework)' != 'net7.0'">Exe</OutputType>

        <UseMaui>true</UseMaui>
        <SingleProject>true</SingleProject>
        <ImplicitUsings>enable</ImplicitUsings>
    <UseMauiEssentials>true</UseMauiEssentials>

    </PropertyGroup>

注意我添加的评论,我根据我正在运行的项目进行切换,我想避免这些评论。测试项目工作正常,但 maui 应用程序项目在 Windows 平台上构建并挂起,因为在调试时不显示应用程序窗口。

在 Android 上,这是一个不同的故事,我启动了应用程序,但它停留在启动屏幕上,热重载初始化直到超时。

Output 窗口充满类似这样的错误 [monodroid-assembly] open_from_bundles: 加载程序集失败

[monodroid-assembly] open_from_bundles: failed to load assembly mymauiapp.Next.dll
[monodroid-gc] GREF GC Threshold: 46080
[monodroid-assembly] open_from_bundles: failed to load assembly Mono.Android.dll
[monodroid-assembly] open_from_bundles: failed to load assembly System.Runtime.dll
[monodroid-assembly] open_from_bundles: failed to load assembly Java.Interop.dll
[monodroid-assembly] open_from_bundles: failed to load assembly System.Runtime.InteropServices.dll
[monodroid-assembly] open_from_bundles: failed to load assembly System.Collections.dll
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/mymauiapp.Next.dll
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/Mono.Android.dll [External]
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/System.Runtime.dll [External]
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/Java.Interop.dll [External]
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/System.Runtime.InteropServices.dll [External]
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/System.Collections.dll [External]
Resolved pending breakpoint for 'Android.Runtime.JNIEnv.RegisterJniNatives(System.IntPtr, System.Int32, System.IntPtr, System.IntPtr, System.Int32)' to /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNIEnv.cs:127 [0x00000].
[monodroid-assembly] open_from_bundles: failed to load assembly System.Threading.dll
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/System.Threading.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly System.Threading.Thread.dll
[monodroid-assembly] open_from_bundles: failed to load assembly System.Diagnostics.StackTrace.dll
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/System.Threading.Thread.dll [External]
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/System.Diagnostics.StackTrace.dll [External]
[me.mgrecruitin] Attempt to remove non-JNI local reference, dumping thread
Loaded assembly: data-0x7c27ceeddcc0 [External]
Loaded assembly: data-0x7c27ceeeaf00 [External]
Loaded assembly: data-0x7c27ceefb240 [External]
[monodroid-assembly] open_from_bundles: failed to load assembly netstandard.dll
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/netstandard.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly System.Linq.dll
Loaded assembly: /data/data/com.companyname.mymauiapp/files/.__override__/System.Linq.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly Microsoft.VisualStudio.DesignTools.TapContract.dll
[monodroid-assembly] open_from_bundles: failed to load assembly Microsoft.VisualStudio.DesignTools.TapContract.dll
[monodroid-assembly] open_from_bundles: failed to load assembly Xamarin.HotReload.Contracts.dll
[monodroid-assembly] open_from_bundles: failed to load assembly Xamarin.HotReload.Contracts.dll
[monodroid-assembly] open_from_bundles: failed to load assembly System.Collections.Concurrent.dll

可能相关的问题.

我创建了一个新项目来重现按预期工作的问题,现在我很困惑为什么会这样。我猜这与我的 mauiapp csproj 配置有关,但似乎无法准确指出。这是我的完整应用程序 csprojs 的gist

我再次尝试清理/构建,删除 bin/obj 文件夹,重新启动 VS,多次卸载我的测试项目,第三次或第四次我让项目再次运行。我不知道是什么原因造成的。

maui xunit
© www.soinside.com 2019 - 2024. All rights reserved.