net6 控制台 + Web 项目上的 ClickOnce

ClickOnce on a net6 Console + Web Project

我有一个支持 kestrel 的 Web 应用程序(我需要设置一个侦听自定义端口的 Web 服务器),但这应该仍然是一个必须在我们客户的 PC 上执行的控制台应用程序。

一切正常,但我无法将 ClickOnce 用作发布配置文件。它只是没有出现在 Visual Studio 2022 发布配置文件中。

在我当前的配置中,我的 csproj 文件是:

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

修改为:

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

神奇地出现 ClickOnce 发布配置文件,但我无法使用 kestrel 和 asp.net 基础设施(我需要),甚至添加依赖项。

如何强制 visual studio 在 Web 项目上也允许 ClickOnce?

或者作为替代方案(但前者是首选),我如何在没有 Microsoft.NET.Sdk.Web 的情况下 运行 asp.net 基础设施?

提前致谢

我认为您可以继续使用 Microsoft.NET.Sdk 并添加对 ASP.NET 核心共享框架的引用。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore?view=aspnetcore-6.0&tabs=visual-studio#use-the-aspnet-core-shared-framework

您的 .csproj 文件应该与此类似

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
</Project>