net6.0 框架的 Web 应用程序构建错误,已签名 (NETSDK1177)

tec*_*itz 8 msbuild aspnet-compiler .net-core asp.net-core .net-6.0

我正在使用 MAC,我的机器上安装了 dotnet core 3.1、5.0 和 6.0 版本。由于此票证中的共享错误,我无法在我的计算机上构建 Web 应用程序。

我可以在目标框架net5.0中构建Web应用程序,但不能使用net6.0和控制台,类库项目构建成功。我尝试使用命令行 VS 2022/2019 进行构建,但没有成功。

项目文件代码如下,这是空的 Web API 项目。

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

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

  <ItemGroup>
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.1.5" />
  </ItemGroup>

</Project>

Run Code Online (Sandbox Code Playgroud)

例外

/usr/local/share/dotnet/sdk/6.0.100-rc.2.21505.57/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(5,5):错误NETSDK1177:无法签名apphost 错误代码为0:/Users/abc/Projects/WebAppTest/WebAppTest/obj/Debug/net6.0/apphost:已签名(NETSDK1177)(WebAppTest)

更多技术细节

.NET SDK (reflecting any global.json):
 Version:   6.0.100-rc.2.21505.57
 Commit:    ab39070116

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  11.6
 OS Platform: Darwin
 RID:         osx.11.0-x64
 Base Path:   /usr/local/share/dotnet/sdk/6.0.100-rc.2.21505.57/

Host (useful for support):
  Version: 6.0.0-rc.2.21480.5
  Commit:  6b11d64e7e

.NET SDKs installed:
  3.1.414 [/usr/local/share/dotnet/sdk]
  5.0.402 [/usr/local/share/dotnet/sdk]
  6.0.100-rc.2.21505.57 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.0-rc.2.21480.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.0-rc.2.21480.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download
Run Code Online (Sandbox Code Playgroud)

Mat*_*int 10

此问题正在https://github.com/dotnet/sdk/issues/22201中跟踪。它似乎在 2022 年 3 月左右随着 macOS 12.3.1 更新重新出现。

一种解决方法是禁用代码签名。这比完全禁用应用程序主机创建稍微好一些。

您可以通过命令或 csproj 中的以下命令来执行此/p:_EnableMacOSCodeSign=false操作dotnet

<PropertyGroup>
   <_EnableMacOSCodeSign>false</_EnableMacOSCodeSign>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

或者,如果您正在运行 JetBrains Rider,请考虑将其添加为 MSBuild 全局属性:

截屏


小智 0

我在使用 dotnet 6 的 Mac 上遇到了类似的问题,这是一个控制台应用程序,如下所述: https://learn.microsoft.com/en-us/learn/modules/work-with-cosmos-db/3-exercise-工作宇宙-db-dotnet

环顾四周后,我的解决方法是编辑项目文件并添加:

<PropertyGroup>
...
  <UseAppHost>true</UseAppHost>
...
</PropertyGroup> 
Run Code Online (Sandbox Code Playgroud)