.net 网络7 XAPRAS 7028系统.IO.文件未找到异常:从MauiBlazor引用Blazor时,找不到文件“bin\Debug\net 7.0\browser-wasm\App.dll”

unhi4e5o  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(148)

我有两个.net7项目,一个是用默认模板创建的MauiBlazor项目,另一个是用默认模板创建的Blazor Web Assembly项目。
在MauiBlazor项目中,我添加了一个对Blazor项目的引用(我做了所有必要的更新来引用Blazor项目)
问题是,当我尝试运行MauiBlazor项目时,我得到以下错误:

Error   XAPRAS7028  System.IO.FileNotFoundException: Could not find file 'MauiBlazor\BlazorApp\bin\Debug\net7.0\browser-wasm\BlazorApp.dll'.

**问题是,如何从Maui项目引用Blazor项目?**因为添加普通项目引用不起作用

<ItemGroup>
      <ProjectReference Include="..\BlazorApp\BlazorApp.csproj" />
    </ItemGroup>

我尝试使用dotnet publish -c Debug -o bin\Debug\net7.0\browser-wasm发布Blazor项目,但没有成功。
我意识到我可以通过手动复制以下内容来使其工作:'MauiBlazor\BlazorApp\bin\Debug\net7.0\MauiBlazor\BlazorApp\bin\Debug\net7.0\browser-wasm,然后用VS运行它(命令行不起作用),但我相信一定有更好的方法。
我还创建了这个项目,通过尝试运行MauiMobileApp项目可以重现该问题。https://github.com/tico321/MauiReferenceBlazorIssue

6ljaweal

6ljaweal1#

在回答上面的问题时,我也找到了我的答案。如果你想在Maui和Blazor之间共享页面,你需要一个共享的项目。一个很好的例子是dotnet podcast repository,了解更多关于仓库的上下文以及他们如何使用Blazor hybrid。观看talk
我为重现该问题而创建的存储库也更新为解决方案https://github.com/tico321/MauiReferenceBlazorIssue
我从podcast存储库中观察到,共享的repo csproj文件需要引用Microsoft.NET.Sdk.Razor SDK和Microsoft.AspNetCore.Components.Web包,因此它应该如下所示:

<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="7.0.0" />
  </ItemGroup>

</Project>

最后,在Maui和Blazor中使用index.html文件时要小心。

相关问题