Веб-развертывание - использование относительных путей для развертывания локальной файловой системы
Я хочу использовать 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:
Вышеизложенное работает, но только при запуске командной строки для файла решения не является файлом проекта
Ответы
Ответ 1
У нас есть ошибка здесь, при публикации с использованием файловой системы вы должны предоставить полный путь. Мы на самом деле обнаружили эту ошибку на этой неделе. Это будет исправлено в нашем следующем обновлении. В этом случае, когда относительный путь передается, он неправильно считает, что его путь IIS.
В качестве обходного пути вы можете отредактировать .pubxml, чтобы сделать publishUrl полным путем. К счастью, вы можете использовать свойство MSBuild, чтобы это работало в командных сценариях. Вот что вам следует сделать, отредактируйте файл .pubxml и обновите значение publishUrl
следующим образом.
<publishUrl>$(MSBuildThisFileDirectory)..\..\..\Deploy_Production</publishUrl>
Этот путь будет относиться к самому файлу .pubxml. Я проверил, что это работает как из командной строки, так и из диалогового окна публикации. Если у вас есть какие-либо проблемы с этим, дайте мне знать, но исправление, надеюсь, будет выпущено через несколько месяцев [никаких гарантий, конечно:)].