我如何通过msbuild/msdeploy部署.net core rc2项目?

3

目前我们通过调用MSBuild.exe并带有DeployOnBuild=truePublishProfile=Whatever参数来部署我们的Web应用程序项目(csproj's),以便将我们的项目部署到以下其中之一:

  • 本地IIS
  • Azure Web Apps
  • Web Deployment Packages

我们想开始使用新的.net core rc2项目,但我们真的不知道如何部署它们。我们能否使用旧的发布配置文件/发布方法?

当使用Visual Studio发布UI时,我只看到文件系统Microsoft Azure应用服务作为选项。文件系统不生成Web部署包,我们希望继续使用部署包技术,特别是在不同环境之间推广相同的构建。

总的来说,任何关于通过msbuild部署.net core rc2应用程序的建议都将非常棒。但是,具体而言,我想知道如何通过msbuild将.net core rc2项目部署到Web部署包中。感谢任何建议!


1
你读过这些文档了吗?https://docs.asp.net/en/latest/publishing/web-publishing-vs.html - mattferderer
2个回答

3

请注意:.NET Core和ASP.NET Core的工具尚处于“预览1”阶段,尚未完成,因此我的解决方案可能会随着下一个版本的发布而改变。

无论如何,msdeploy.exe仍在工作,但需要了解msdeploy CLI。

我刚刚使用FAKE(F# Make)配置了持续部署过程,但如果您对MSBuild有更深入的了解,也可以使用它进行操作。

第一步是使用“dotnet publish”使用类似这样的参数部署到特定文件夹:

"dotnet publish " + webPath + " --framework net461 --output " + publishFolder + 
    " --configuration " + buildConf + " --no-build"

那么您需要使用类似于这样的参数调用msdeploy.exe:

"msdeploy.exe -source:contentPath=" + publishFolder + " -dest:contentPath=" + targetFolder + 
    ",ComputerName=" + computerName + ",UserName='" + username + "',Password='" + publishPassword + 
    "',IncludeAcls='False',AuthType='Basic' -verb:sync -enablerule:AppOffline -enableRule:DoNotDeleteRule -retryAttempts:20"

如果你使用Visual Studio发布到Azure,它将完全相同。如果你尝试使用Visual Studio,你会发现在发布输出窗口中有相应的信息。


非常感谢您的帮助!看起来这对我们很有用!希望他们很快完成,因为我想在rc2中使用很多好东西。 - Allen Rice
您可以在这里找到有关命令行使用的更多文档 - https://github.com/aspnet/websdk#microsoftnetsdkpublish - vijayrkn

2

感谢你!这对我有用!

我使用了:

$website = Get-AzureWebsite -Name [AzureWebsiteName]

# get the SCM URL to use with MSDeploy.  
# by default this will be the second in the array.
$msDeployHost = $website.EnabledHostNames[1]

然后我创建了 "-dest:contentPath",方法如下:
$destPath="$($website.Name),ComputerName='https://$msDeployHost/msdeploy.axd',UserName='$($website.PublishingUsername)',Password='$($website.PublishingPassword)',IncludeAcls='False',AuthType='Basic'"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接