从VS发布到Azure时无法更改目标运行时

时间:2016-06-21 10:01:56

标签: azure asp.net-core

我有一个ASP.Core RC2项目(使用的是.NET 4.5.1框架),应该作为x86 Web站点部署在Azure上。

在VS中的“发布设置”选项卡上,有以下值:

  • 目标框架:.NET Framework 4.5.1
  • 目标运行时:推断运行时(win7-x64)

我想要改变的是" Target Runtime"到x86平台,但这个组合框是无效的(灰色)。

当前project.json:

{
"version": "1.0.0-*",

"dependencies": {
  "Microsoft.NETCore.Platforms": "1.0.1-*",
  "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final"
},

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},

"buildOptions": {
  "emitEntryPoint": true
},

"frameworks": {
  "net451": { }
},

"publishOptions": {
  "include": [
    "appsettings.json",
    "project.json",
    "web.config",
    "NlogWeb.config"
  ]
},
"tools": {
  "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
    "version": "1.0.0-*",
    "imports": "portable-net45+wp80+win8+wpa81+dnxcore50"
  }
},
"scripts": {
  "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
}
}

1 个答案:

答案 0 :(得分:7)

当您开发自包含应用程序时,必须将所有必需的运行时添加到project.json文件中,以便nuget / dotnet restore可以在还原时下载运行时文件。

win7-x86运行时添加到project.json应该可以解决问题。

"runtimes": {
    "win7-x64": { }, 
    "win7-x86": { } 
}

当您定位便携式应用时,您不需要运行时部分,但您必须自己在目标计算机上安装运行时。有关可移植性类型如何工作和配置的更详细说明,请参阅.NET Core App Types文档。