dotnet publish 命令没有为 asp.net 核心 Web 应用程序项目创建 zip 文件包

dotnet publish command is not creating zip file package for asp.net core web application project

我正在尝试为 asp.net 核心网络应用程序创建一个网络部署包。当我尝试使用 VS2017 将输出作为一个包发布时,我在 "Publish" 文件夹中获得了所有必要的文件以及一个包含给定位置的所有这些文件的 zip 文件。

不过我想使用命令行也一样。我可以得到 "Publish" 文件夹,但不能得到 zip 文件。我究竟做错了什么?有人可以纠正我的命令吗?

dotnet publish /p:target=package /p:WebPublishMethod=Package /p:LastUsedBuildConfiguration=Release /p:LastUsedPlatform="Any CPU" /p:LaunchSiteAfterPublish=True /p:ExcludeApp_Data=False /p:PublishFramework=netcoreapp1.0 /p:UsePowerShell=True /p:DesktopBuildPackageLocation=C:\Kannan\Temp\package.zip /p:PackageLocation="C:\kannan\temp\package.zip" /p:PackageFileName=C:\kannan\temp\package.zip /p:PackageAsSingleFile=true

What am I doing wrong? Can someone correct my command?

这取决于您的客户端版本。

如果您使用的是 2.0 版本的 cli,那么您可以在 windows 机器上使用 dotnet publish 命令,它会起作用。

dotnet build WebApplicationDeploy.sln /nologo /p:PublishProfile=Release /p:PackageLocation="C:\Some\Path\package" /p:OutDir="C:\Some\Path\out" /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /maxcpucount:1 /p:platform="Any CPU" /p:configuration="Release" /p:DesktopBuildPackageLocation="C:\Some\Path\package\package.zip"

但是如果您使用的是 1.0.4 版本的 cli,那么您应该使用 msbuild 版本的命令(调用 dotnet build 的功能是在 2.0 cli 中添加的).

msbuild WebApplicationDeploy.sln /nologo /p:PublishProfile=Release /p:PackageLocation="C:\Some\Path\package" /p:OutDir="C:\Some\Path\out" /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /maxcpucount:1 /p:platform="Any CPU" /p:configuration="Release" /p:DesktopBuildPackageLocation="C:\Some\Path\package\package.zip"

有关详细信息,您可以参考GitHub上的the same issue

我为 Uno Platform 应用程序使用了 dotnet publish -c Release /p:WebPublishMethod=Package /p:PackageLocation="C:\Temp",它运行良好

可能是因为您将完整的文件名放在 /p:PackageLocation= 而不是文件夹?