如何通过 msbuild / msdeploy 部署 .net core rc2 项目?
How do I deploy .net core rc2 projects via msbuild / msdeploy?
目前,我们通过使用 DeployOnBuild=true
和 PublishProfile=Whatever
参数调用 MSBuild.exe
来部署我们的 Web 应用程序项目 (csproj),以将我们的项目部署到以下项目之一:
- 本地 IIS
- Azure Web 应用程序
- Web 部署包
我们想开始使用新的 .net core rc2 项目,但我们真的不确定如何部署它们。我们可以使用旧的发布配置文件/发布方法吗?
通过 Visual Studio 发布 UI 时,我只看到 File System
和 Microsoft Azure App Service
作为选项。文件系统不制作网络部署包,我们希望继续使用部署包技术,尤其是在不同环境之间推广相同的构建。
一般来说,任何关于以类似于我们之前所做的方式通过 msbuild 部署 .net core rc2 应用程序的建议都会很棒。但是,具体来说,我想知道如何通过 msbuild 将 .net core rc2 项目部署到 web 部署包。感谢您的任何建议!
请注意:围绕 .NET Core 和 ASP.NET Core 的工具 "Preview 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"
如果您发布到 Azure,Visual Studio 的作用完全相同。如果您尝试使用 Visual Studio,您将在发布输出中看到 window.
非常感谢!对我有用!
我用过:
$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'"
目前,我们通过使用 DeployOnBuild=true
和 PublishProfile=Whatever
参数调用 MSBuild.exe
来部署我们的 Web 应用程序项目 (csproj),以将我们的项目部署到以下项目之一:
- 本地 IIS
- Azure Web 应用程序
- Web 部署包
我们想开始使用新的 .net core rc2 项目,但我们真的不确定如何部署它们。我们可以使用旧的发布配置文件/发布方法吗?
通过 Visual Studio 发布 UI 时,我只看到 File System
和 Microsoft Azure App Service
作为选项。文件系统不制作网络部署包,我们希望继续使用部署包技术,尤其是在不同环境之间推广相同的构建。
一般来说,任何关于以类似于我们之前所做的方式通过 msbuild 部署 .net core rc2 应用程序的建议都会很棒。但是,具体来说,我想知道如何通过 msbuild 将 .net core rc2 项目部署到 web 部署包。感谢您的任何建议!
请注意:围绕 .NET Core 和 ASP.NET Core 的工具 "Preview 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"
如果您发布到 Azure,Visual Studio 的作用完全相同。如果您尝试使用 Visual Studio,您将在发布输出中看到 window.
非常感谢!对我有用!
我用过:
$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'"