【问题标题】:Deploy ASP.NET with full .NET使用完整的 .NET 部署 ASP.NET
【发布时间】:2017-07-03 14:45:25
【问题描述】:

如果我还使用 .NET 4.5.2 中的一些库,我想知道是否可以部署我的 asp.net 核心应用程序。

为了描述我的问题,在我的应用程序中,我使用了来自完整 .NET 的 SyndicationFeed 在我的“框架”部分的 project.json 中,我有:

  "frameworks": {
    "net452": {
      "frameworkAssemblies": {
        "System.ServiceModel": ""
      },
      "dependencies": {
      }
    },
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  }

在其他部分我使用 ASP.CORE 包,例如:

"Microsoft.EntityFrameworkCore.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"Hangfire.AspNetCore": "1.6.8",

还有更多。

所以问题是是否可以部署到 IIS。我应该部署到使用 ASP.CORE 还是完整的 .NET 运行的服务器。

【问题讨论】:

  • 您不能手动移植联合供稿吗?我们所做的是使用 dotPeek 从非 dotnet 核心包中反编译代码,并使 em dotnet 兼容。大多数情况下,每个包裹只需要 1/2 小时。 (例如,我为 cloudinary 做了这个)

标签: c# asp.net iis deployment asp.net-core


【解决方案1】:

简而言之:是的,这是可能的。但需要完整的 .NET Framework(在服务器上)。

长篇大论:

projects.json 中有两个frameworks 在编译/发布期间有效地创建了两个不同的应用程序(一个用于net462,另一个用于netcoreapp1.1)。这是两个不同的应用程序,使用相同的源代码为不同的框架编译。

要首先运行(对于 net462),您需要安装了 .NET Framework 的机器。对于其他(对于 netcoreapp),您需要安装 .NET Core。您不能“交换”(在 .NET Core 上运行 net462-build 应用程序,反之亦然)。

但是看着你的project.json,我不敢相信你的应用程序编译成功了。您需要 System.ServiceModel 才能使您的应用程序正常工作。但它仅适用于 net462。这意味着在编译过程中,第一个应用程序(对于 net462)编译成功,而第二个应用程序(net netcoreapp)应该会失败(未找到类、未找到命名空间等)。

从项目/解决方案文件夹中的命令行运行dotnet builddotnet publish。发现任何错误?

因此,当您需要 .NET Core 不可用的包/类时,您无法在 .NET Core 下创建/构建/运行。

可能的解决方案:

  • 替换与 netcore 兼容的包(如果有的话,我不知道),或重新构建(端口)现有的兼容(如 Joel 所说);
  • 完全移除此包(自行实现所需代码);
  • 不要定位netcoreapp1.1
  • 在你使用这个包的地方添加条件编译(#if),所以你只会在你的应用程序的net462-版本中使用if。否则 (#else) 添加 NotImplementedException、null 结果或其他内容(视情况而定) - 实际上编译后您将拥有两个 不同 应用程序:net462 的全功能和 @987654337 的受限功能@。

【讨论】:

    猜你喜欢
    • 2010-11-11
    • 1970-01-01
    • 2016-01-25
    • 2018-11-16
    • 2019-04-19
    • 2018-12-06
    • 2017-10-18
    • 2015-06-04
    • 2017-02-13
    相关资源
    最近更新 更多