Публикация .Net Core 2 WebApp в iis из пакета (zip) - PullRequest
0 голосов
/ 27 июня 2018

Предпосылки, которые я сделал:

Создан простой проект веб-API по шаблону «Базовое веб-приложение ASP.NET» (выбран ASP.NET NetCore 2.1). Создан профиль публикации со следующей конфигурацией

<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" (веб-сайт по умолчанию, удаляя из него все остальное содержимое).

Возможно ли на этапе настройки MSBuild через файл .pubxml указать путь установки (виртуальный путь) не в корневую папку, а хотя бы в подпапку? Я смог сделать это, запустив

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 заменяет атрибут найти хороший ответ, но он работает только для простого нового веб-API. Когда я пытаюсь сделать то же самое для существующего проекта, он всегда использует папку '.. \ obj \ Release \ netcoreapp2.1 \ PubTmp \ Out \' в качестве места назначения синхронизации и вообще не копирует файлы в папку IIS. А с параграфами abouve это просто ничего не копирует

  • даже с параметрами в файле .pubxml:

    Веб-сайт по умолчанию / MeWebApp Веб-сайт по умолчанию / MeWebApp C: \ Inetpub \ Wwwroot \ Test2 C: \ Inetpub \ Wwwroot \ Test1

Какой параметр должен на это влиять? Некоторые цели , кажется, игнорируются в новом конвейере. Я провел много экспериментов, по моему мнению, самыми полезными ссылками были blog , sdk , official , но все еще не мог найти способ выбрать папку публикации при развертывании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...