如何从命令行MSDeploy一个ASP.NET核心应用程序? (csproj not project.json)

时间:2017-06-17 22:30:45

标签: asp.net-core msbuild .net-core msdeploy continuous-deployment

ASP.NET Core应用程序是否可以通过msdeploy.exe和.pubxml定义部署,类似于.NET之前的Core?这是我之前使用过的命令:

msbuild myproj.csproj /p:DeployOnBuild=true /p:PublishProfile=<profile-name>

如果没有,从命令行部署ASP.NET Core应用程序的首选方法是什么?

3 个答案:

答案 0 :(得分:3)

要将您的asp.net核心应用程序部署到Azure Web App,只需执行以下步骤:

1. dotnet publishsomeproject.csproj -c release -o someDirectory
2. msdeploy.exe  -verb:sync -source:contentPath="someDirectory" -dest:contentPath="webAppName",ComputerName="https://WebAppName.scm.azurewebsites.net/msdeploy.axd",UserName="username",Password="password",IncludeAcls="False",AuthType="Basic"
-enablerule:AppOffline -enableRule:DoNotDeleteRule -retryAttempts:20 -verbose

可以在Azure门户的Web应用程序的“部署预览”部分中检索或设置用户名和密码。我为msdeploy.exe设置了一个环境路径,通常可以在C:\Program Files\IIS\Microsoft Web Deploy V3上找到。

答案 1 :(得分:1)

您可以在此处找到有关命令行用法的文档: https://github.com/aspnet/websdk/blob/dev/README.md#microsoftnetsdkpublish

您可以使用以下任何命令从命令行

使用MSDeploy发布
msbuild WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<MsDeployProfileName> /p:Password=<DeploymentPassword>

dotnet publish WebApplication.csproj /p:PublishProfile=<MsDeployProfileName> /p:Password=<DeploymentPassword>

您可以在此处找到各种配置文件的示例 - https://github.com/vijayrkn/PublishProfiles/tree/master/samples

修复错误。确保在运行publish命令之前先运行还原:

dotnet restore 

答案 2 :(得分:0)

使用dotnet cli工具的一种方法是dotnet publish命令。

dotnet restore
dotnet publish -c Release -o output

这将恢复所有NuGet依赖项,然后在名为output的文件夹中创建发布版本。然后你可以&#34; xcopy部署&#34;它,添加到Dockerfile或做任何你需要做的事情。

请注意,这适用于基于csproj的项目,使用较新版本的dotnet cli工具(不再支持project.json个文件)。