【发布时间】:2020-09-23 07:15:17
【问题描述】:
我正在尝试在我的 .NET Core 2.0 项目上执行 Web 部署。从 Visual Studio 的“发布”功能中手动部署可以正常工作。
从命令行,我正在执行:
dotnet publish TechsportiseOnline/TechsportiseOnline.csproj -c Release /p:PublishProfile="Properties\PublishProfiles\techsportise.com - Web Deploy" /p:Username="***" /p:Password="***"
命令返回成功,完全没有错误 - 即使详细程度设置为诊断。出于所有意图和目的,Visual Studio 认为它是成功的。
但是当我访问该网站时,我所做的更改显然不存在。我已经尝试访问隐身并清除缓存,但更改根本没有部署。
我尝试过使用dotnet build /p:DeployOnBuild=true 的相同命令,也尝试过手动指定所有参数
dotnet build TechsportiseOnline/TechsportiseOnline.csproj -c Release /p:DeployOnBuild=true /p:DeployIisPath="techsportise.com" /p:MSDeployServiceURL="***" /p:Username="***" /p:Password="***" /p:SkipExtraFilesOnServer=true /p:AllowUntrustedCertificate=true
我不认为这是本地系统问题,因为我在使用 Bitbucket Pipelines 时遇到了同样的问题 - 即使部署后没有可见的更改也报告成功。我认为这不是服务器问题,因为它在 VS 中手动执行 Publish 时会起作用。
有什么想法吗?
【问题讨论】:
-
“Visual Studio 认为它是成功的”——这不太可能。更有可能 Visual Studio 根本不知道它,因为它不参与该过程。同样,如果您在 Visual Studio 中将详细程度设置为“诊断”,您的命令行进程不会意识到这一点。
-
这是一个很好的观点。在这种情况下,我的意思是,命令行日志不会抛出错误以表明它没有成功。
-
我认为您应该重新启动 IIS AppPool 以查看更改。
标签: .net-core msbuild .net-core-2.0