ASP.NET Core应用程序能否通过msdeploy.exe和类似于 .NET Core之前可行的.pubxml定义进行部署?以下是我之前使用的命令:
msbuild myproj.csproj /p:DeployOnBuild=true /p:PublishProfile=<profile-name>
如果不行,从命令行部署ASP.NET Core应用程序的首选方法是什么?
ASP.NET Core应用程序能否通过msdeploy.exe和类似于 .NET Core之前可行的.pubxml定义进行部署?以下是我之前使用的命令:
msbuild myproj.csproj /p:DeployOnBuild=true /p:PublishProfile=<profile-name>
如果不行,从命令行部署ASP.NET Core应用程序的首选方法是什么?
您可以在此处找到有关命令行用法的文档: 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
要修复错误,请确保在运行发布命令之前先运行还原命令:
dotnet restore
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
。
使用dotnet
cli工具的一种方法是使用dotnet publish
命令。
dotnet restore
dotnet publish -c Release -o output
这将恢复所有NuGet依赖项,然后在一个名为output
的文件夹中创建一个发布版本构建。您可以使用“xcopy deploy”命令将其部署,添加到Dockerfile中,或者进行其他任何您需要的操作。
请注意,这适用于使用较新版本的dotnet
cli工具(不再支持project.json
文件)的基于csproj
的项目。
dotnet publish
吗?https://learn.microsoft.com/en-us/aspnet/core/publishing/web-publishing-vs - Lex LiThe type or namespace name 'System' could not be found in the global namespace (are you missing an assembly reference?)
。我已经在上面更新了我的答案,其中包含我正在运行的确切命令。 - JTWdotnet restore
命令? - Martin Ullrichdotnet build
命令之前,我会先执行dotnet restore
。 - JTW