【发布时间】:2016-09-30 20:31:23
【问题描述】:
我需要发布一个针对框架 net461 的 .NET Core ASP.NET 网站。
我试过了:
dotnet publish --runtime active --output "C:\stuff\" --configuration Release
但这会导致项目作为 .exe 输出(以及 Microsoft.AspNetCore.Authorization.dll 等 dotnet 核心依赖项的 .dll)。我需要在 Windows Server 2008 R2 上发布到 IIS。
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"warningsAsErrors": true
},
"dependencies": {
"Microsoft.AspNetCore.Diagnostics.Elm": "0.1.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Authorization": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Hosting": "1.0.0",
"Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0",
"Microsoft.AspNetCore.Http.Extensions": "1.0.0",
"Microsoft.AspNetCore.Localization": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Routing": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.Session": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Caching.SqlServer": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
},
"frameworks": {
"net461": {}
},
感谢您的帮助!
【问题讨论】:
-
一个 .exe 将成为已发布内容的一部分,此外还有 web.config 和 iis 可以使用的一些其他 Web 工件。您可能需要添加一些额外的步骤。完整的说明请参见this article on publishing to iis。
-
--output 选项有问题,删除它,它将在 bin/release/net461/publish 中发布
-
@stephen.vakil 是否可以将其发布为 .dll?如果我使用框架:netcoreapp1.0,我可以获得一个 .dll,但我需要以 net461 为目标。
-
可能有,但我不知道。建议的部署是让 IIS 充当 Kestrel 的反向代理,这意味着将涉及
exe。更多信息here 虽然它不能准确回答您的问题。 -
@johnluke.laue 如果您有一个纯 .Net Core 1.0 应用程序,您可以选择将其发布为
DLL(便携式应用程序)或EXE(自包含应用程序)。根据这一点,您的 web.config 将有不同的设置让 IIS 运行应用程序。
标签: .net asp.net-core .net-core asp.net-core-1.0