Подтвердить что ты не робот

Веб-развертывание - использование относительных путей для развертывания локальной файловой системы

Я хочу использовать Web Deploy для запуска настраиваемой установки развертывания.

Поскольку я хочу, чтобы эта работа была прекрасной при работе во многих разных средах (локальные команды членов группы, 4 разных сервера сборки), я хочу развернуть локальный путь, который является относительным.

То, что я хочу сделать, это:

  • Разверните локальный относительный путь
  • После завершения сборки сделайте магические вещи...

Однако, когда я вхожу в локальный путь к файлу для развертывания как: "..\Deploy_Production"

веб-развертывание жалуется на это:

2>Connecting to ..\Deploy_Live...
2>Unable to create the Web site '../Deploy_Live'.  The URL http://:0 is invalid.

Как будто веб-развертывание считает, что относительный путь к файлу является URL-адресом веб-сайта. Использование ".." вместо этого не помогает моей причине.

Как заставить WebDeploy развертывать локальный относительный путь?

Изменить 1:

Я попытался использовать задачу ConvertToAbsolutePath перед сборкой, безрезультатно:

  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <SiteUrlToLaunchAfterPublish>http://mywebsite.com</SiteUrlToLaunchAfterPublish>
    <publishUrl>..\Deploy_Production</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>

  <Target Name="BeforeBuild">
    <ConvertToAbsolutePath Paths="$(publishUrl)">
      <Output TaskParameter="AbsolutePaths" PropertyName="publishUrl" />
    </ConvertToAbsolutePath>
  </Target>

Изменить 2: Вышеизложенное работает, но только при запуске командной строки для файла решения не является файлом проекта

4b9b3361

Ответ 1

У нас есть ошибка здесь, при публикации с использованием файловой системы вы должны предоставить полный путь. Мы на самом деле обнаружили эту ошибку на этой неделе. Это будет исправлено в нашем следующем обновлении. В этом случае, когда относительный путь передается, он неправильно считает, что его путь IIS.

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

<publishUrl>$(MSBuildThisFileDirectory)..\..\..\Deploy_Production</publishUrl>

Этот путь будет относиться к самому файлу .pubxml. Я проверил, что это работает как из командной строки, так и из диалогового окна публикации. Если у вас есть какие-либо проблемы с этим, дайте мне знать, но исправление, надеюсь, будет выпущено через несколько месяцев [никаких гарантий, конечно:)].