Msbuild dotnet publish命令未为asp.net核心web应用程序项目创建zip文件包

Msbuild dotnet publish命令未为asp.net核心web应用程序项目创建zip文件包,msbuild,.net-core,visual-studio-2017,dotnet-cli,Msbuild,.net Core,Visual Studio 2017,Dotnet Cli,我正在尝试为asp.net核心web应用程序创建web部署包。当我尝试使用VS2017将输出发布为包时,我在“publish”文件夹中获得了所有必要的文件,以及一个包含给定位置中所有这些文件的zip文件 但是,我希望使用命令行实现同样的功能。我可以得到“发布”文件夹,但不是zip文件。我做错了什么?有人能纠正我的命令吗 dotnet publish /p:target=package /p:WebPublishMethod=Package /p:LastUsedBuildConfiguratio

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

但是,我希望使用命令行实现同样的功能。我可以得到“发布”文件夹,但不是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
我做错了什么?有人能纠正我的命令吗

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
这取决于cli的版本

如果您使用的是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中添加的)


有关详细信息,请参阅GitHub。

@Leo MSFT:此url解决了我的问题。谢谢。上面的正确语法是什么?例如/p:something=abc在Linux和OSX上(涉及dotnet 2和3)?哦,我可以拥抱你!(显然,以一种安全、远离社会的方式)