参考无效或不受支持 - 我如何找出原因?

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

背景

我正在解决以下问题:将内部 nuget 包(如在私人源中)添加到 Blazor WASM 会导致包引用上出现黄色警告三角形。

构建失败并出现错误:

Error   NETSDK1082  There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'.

我不认为这是实际的错误,所以我正在研究构建输出,并将详细程度设置为详细而不是最小。这是一个很长的日志,但我看到了这种情况的发生:

Restoring packages for net8.0/browser-wasm...
Resolving conflicts for net8.0/browser-wasm...
  CACHE https://api.nuget.org/v3/vulnerabilities/index.json
  CACHE https://api.nuget.org/v3-vulnerabilities/2024.04.18.07.01.18/vulnerability.base.json
  CACHE https://api.nuget.org/v3-vulnerabilities/2024.04.18.07.01.18/2024.04.22.07.01.30/vulnerability.update.json
All packages and projects are compatible with net8.0.
All packages and projects are compatible with net8.0 (browser-wasm).

最终失败了:

1>  Task "ResolveRuntimePackAssets"
1>    C:\Program Files\dotnet\sdk\8.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(491,5): error NETSDK1082: There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'.
1>  Done executing task "ResolveRuntimePackAssets" -- FAILED.
1>Done building target "ResolveRuntimePackAssets" in project "My.Client.csproj" -- FAILED.
1>
1>Done building project "My.Client.csproj" -- FAILED.

我正在努力做什么

我怀疑,无论出于何种原因,我的库与 Blazor WASM 项目不兼容。为了解决这个问题,我尝试将该引用直接添加为项目引用(= dll),因为两者都在我的本地计算机上,以查看是否有任何错误。

这给了我这个模式:

将此库添加到任何其他项目类型(不是 Blazor)都可以正常工作,无论是作为 dll 或 nuget 包。

我的问题

发生了什么事以及如何确定此“不受支持”问题的原因?

PS:有一个相同主题的问题,但没有答案。

c# blazor nuget blazor-webassembly
1个回答
0
投票

问题是

Microsoft.AspNetCore.App
是服务器端引用,不能用于 Blazor WASM。

我使用 HttpRequest 和 ControllerContext 来获取当前 API url 以供稍后使用。那些需要前面提到的 AspNetCore:

internal static string GetBaseUrlForController(HttpRequest request, ControllerContext controllerContext)
{
    var leftUrl = new Uri(request.GetDisplayUrl()).GetLeftPart(UriPartial.Authority);
    var controller = controllerContext.RouteData.Values["controller"]?.ToString();
    return $"{leftUrl}/api/{controller}";
}

我将该逻辑移到了库之外,以便它现在仅适用于

string url

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