【问题标题】:Installing ASP .NET Core service to IIS using Visual Studio Installer Projects使用 Visual Studio 安装程序项目将 ASP .NET Core 服务安装到 IIS
【发布时间】:2021-05-05 02:01:21
【问题描述】:

我有一个 ASP .NET Core 3.1 应用程序,它使用 IHostBuilder.UseWindowsService 调用作为 Windows 服务托管。我正在使用 Visual Studio Installer Projects Extensions 准备安装项目。该项目被创建为 Web 安装项目类型,因此安装程序对话框已经呈现给用户选择的网页和 IIS 上的应用程序池。

我面临的问题是程序集已成功安装在 IIS 上的给定文件夹中,但未安装 ApplicationService.deps.json。如果没有此文件,应用程序将无法成功启动。据我检查,该文件是在bin\x64\Release\netcoreapp3.1\ 中作为构建的一部分创建的,但显然不包含在安装项目中。

我还通过指定我在手动尝试从 Visual Studio 发布到 IIS 时生成的配置文件来使用安装项目的属性 PublishProfilePath

但是,这会产生更奇怪的结果。当我构建安装项目时,应用程序已经部署到 IIS!然后在检查新创建的msi时,它的大小真的很小,实际上并没有安装任何东西(虽然成功完成)。

任何帮助将不胜感激。

【问题讨论】:

  • 您是如何安装 ASP .NET Core 服务的?您可以再试一次,看看是否遇到同样的问题。
  • 我使用由 setup 项目的输出创建的 msi 安装它(使用 Visual Studio Installer Projects 扩展创建)。但似乎 msi 默认情况下不与 ApplicationService.deps.json 文件捆绑在一起,也没有选项可以更改此行为。

标签: c# asp.net-core iis


【解决方案1】:

我设法解决了这个问题,但我不确定这是否是最佳解决方案。在设置项目中,您还可以将单个文件作为输出的一部分包含在内。如果我添加ApplicationService.deps.json,它会在安装项目本身中标有相对路径。这意味着一旦安装项目正在构建,ApplicationService 项目无论如何都会首先构建,因为它是安装项目的主要输出。此时“ApplicationService.deps.json”出现在 Release 文件夹中。然后在创建 msi 时,它会作为输出的一部分包含在内。

它可以工作,但我希望安装项目自动包含该文件。

【讨论】:

    猜你喜欢
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多