在 asp.net 核心的构建后事件中运行 dotnet publish
Posted
技术标签:
【中文标题】在 asp.net 核心的构建后事件中运行 dotnet publish【英文标题】:running dotnet publish in post build event in asp.net core 【发布时间】:2016-09-01 05:07:37 【问题描述】:我想在构建后发布我的网站。有没有办法在 asp,net core 的构建后事件中运行 dotnet publish 命令? 这是我的 project.json 文件:
"dependencies":
"Microsoft.NETCore.App":
"version": "1.0.0",
"type": "platform"
,
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Model": "1.0.0-*",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0"
,
"tools":
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final"
,
"frameworks":
"netcoreapp1.0":
"imports": [
"dotnet5.6"
]
,
"buildOptions":
"emitEntryPoint": true,
"preserveCompilationContext": true
,
"runtimeOptions":
"configProperties":
"System.GC.Server": true
,
"publishOptions":
"include": [
"wwwroot",
"appsettings.json",
"web.config"
]
,
"scripts":
"prepublish": [
//"bower install"
],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ],
"postbuild": "[call $(ProjectDir)Publish.bat]"
【问题讨论】:
您是否尝试将dotnet publish
作为postcompile
脚本运行?
@Pawel 是的,它不起作用
我不知道这到底是什么意思... - 是有错误还是什么? (作为旁注 - 我不太清楚你为什么要在构建上发布......)
@Pawel 我测试它:dotnet publish --framework netcoreapp1.0 --output "c:\temp\Api" --configuration 发布但不工作。我也尝试运行 bat 文件但不是再次工作。
再次“不工作”非常模糊。是你构建Debug但尝试发布Release还是构建net461并发布netcoreapp1.0?
【参考方案1】:
在您的构建后事件中将--no-build
参数添加到dotnet publish
。默认情况下,dotnet publish 将运行构建,这将触发构建后事件,然后将尝试再次发布,这将导致无限循环,似乎使构建挂起。
【讨论】:
以上是关于在 asp.net 核心的构建后事件中运行 dotnet publish的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Angular 7 保持 AngularCLIServer 在 asp.net 核心上的构建之间运行
应用程序设置和应用程序构建事件中的 ASP.NET 参数/变量
需要一些帮助来构建 asp.net 核心 webapi 中的 [HttpPost] 部分
HTTP 错误 500.0 - Dot net core 3.1 中的 ASP.NET Core IIS 托管失败(进程中)