.Net Core 2 WebApp从程序包(zip)发布到iis

时间:2018-06-27 15:25:11

标签: c# msbuild asp.net-core-2.0 iis-8

我已经完成的先决条件:

通过模板“ ASP.NET Core Web应用程序”(选择ASP.NET NetCore 2.1)创建了简单的Web API项目。使用下一个配置创建了一个发布配置文件

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<WebPublishMethod>Package</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<ProjectGuid>ca211ccb-1868-47d8-a6nd-c30347faa49e</ProjectGuid>
<DeleteExistingFiles>False</DeleteExistingFiles>
<PackageLocation>C:\Test\Publish\CoreWebApi.zip</PackageLocation>
<DeployIisAppPath>Default Web Site/WebEngine555</DeployIisAppPath>    
</PropertyGroup>
</Project>

可帮助生成一个zip包。

将此程序包部署到IIS之后,(我已经用下一条命令完成了此操作)

C:\Program Files (x86)\IIS\Microsoft Web Deploy V3>msdeploy.exe -verb:sync -source:package="C:\Test\Publish\CoreWebApi.zip" -dest:auto="C:\inetpub\wwwroot\WebEngine" 
  • (我想用更特定的提供程序更改此-dest:auto,但似乎它仅与该提供程序一起使用,并且不知道如何查找或更改清单以使源包与其他提供程序兼容。)

它将软件包安装到“ C:\ inetpub \ wwwroot”根目录(默认网站,并从中删除所有其他内容)。

是否可以通过.pubxml文件在MSBuild配置步骤中将安装路径(虚拟路径)指向根文件夹而不是至少指向子文件夹?我可以通过运行

来做到这一点
C:\Program Files (x86)\IIS\Microsoft Web Deploy V3>msdeploy.exe -verb:sync -source:package="C:\Test\Publish\CoreWebApi.zip" 
-dest:auto="Default Web Site/WebEngine" 
-setParam:name="IIS Web Application Name",
value="Default Web Site/WebEngine5"

也在这里Msdeploy replace attribute 找到一个很好的答案,但它仅适用于简单的新Web API。当我尝试对现有项目执行相同操作时,它始终使用“ .. \ obj \ Release \ netcoreapp2.1 \ PubTmp \ Out \”文件夹作为同步目标,而根本不将文件复制到IIS文件夹。而且具有上述参数,只是不能复制任何内容

  • 甚至包含.pubxml文件中的参数:

    默认网站/ MeWebApp 默认网站/ MeWebApp C:\ inetpub \ wwwroot \ Test2 C:\ inetpub \ wwwroot \ Test1

应该影响什么的参数是什么?在新的管道中似乎忽略了一些targets。我做了很多实验,就我而言,最有用的链接是blogsdkofficial,但是仍然找不到在部署时选择发布文件夹的方法。

0 个答案:

没有答案