c# - .Net Core 2 WebApp 从包 (zip) 发布到 iis
问题描述
我已经完成的先决条件:
通过模板“ASP.NET Core Web Application”(选择 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 属性 找到了一个很好的答案,但它仅适用于简单的新 Web API。当我尝试对现有项目执行相同操作时,它始终使用 '..\obj\Release\netcoreapp2.1\PubTmp\Out\' 文件夹作为同步目标,根本不会将文件复制到 IIS 文件夹。使用上面的参数,它只是不复制任何东西
即使使用 .pubxml 文件中的参数:
默认网站/MeWebApp 默认网站/MeWebApp C:\inetpub\wwwroot\Test2 C:\inetpub\wwwroot\Test1
应该影响它的参数是什么?一些目标似乎在新管道中被忽略了。我做了很多实验,我认为最有用的链接是blog、sdk、official,但仍然找不到在部署时选择发布文件夹的方法。
解决方案
推荐阅读
- scala - 如何编译编译器阶段的输出?
- c# - 程序未运行,以代码 0 退出并且不显示任何内容
- javascript - 使 2 个 div 响应地与其他 2 个 div 重叠
- shell - shell脚本中的算术(字符串中的算术)
- sql - 如何在 SQL 中连接 4 个表?
- python - 我无法在 Python 的 3D 数组中访问和进行一些操作
- sql - 检查一个值在每一列中只能存在一次
- amazon-web-services - 用于调整 s3 存储桶中图像大小的 AWS Lambda 函数
- javascript - javascript iframe 设置计时器并检查是否已加载
- java - 如何在循环中动态声明变量?