Публикация профиля не работает при создании проекта сайта

Я понял что Web Deployment Projects не поддерживаются в Visual Studio 2012, Прочитав эту статью, я попытался получить Publish Profiles работать.

После установки Visual Studio Web Publish Update я смог опубликовать проекты веб-сайтов и проекты веб-приложений с помощью нового диалога публикации в Visual Studio 2012,

Потому что мы используем TFS 2010 Team Build Я пытался использовать опубликовать профиль через MSBuild параметры. Но следующее утверждение работает только для публикации проектов веб-приложений.

MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml

Если я пытаюсь публиковать проекты сайтов, ничего не происходит. Профиль публикации проектов моего веб-сайта работает только с новым диалогом публикации в Visual Studio 2012 но не при звонке MSBuild,

Любая идея?

2 ответа

Я провел около 3 недель, борясь с этим в моей собственной среде, и думаю, что у меня есть решение.

Я думаю, проблема в том, что файл website.publishproj фактически никогда не создается, когда вы передаете решение. Мне удалось решить эту проблему, выполнив следующие действия:

  1. Убедитесь, что вы используете новое обновление ASP.Net и Tools 2012.2. Скачать здесь.
  2. Создайте файл рядом с файлом решения с именем after.MyWebs.sln.targets. Этот файл должен выглядеть следующим образом:

    <!--?xml version="1.0" encoding="utf-8"?-->
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <Target Name="Deploy Website" AfterTargets="Build">
            <Message Text="Starting Website deployment" Importance="high">
            </Message>
            <MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj" 
            BuildInParallel="true" /> 
        </Target>
    </Project>
    

Это означает, что когда MSBuild начинает создавать файл решения, он фактически создает файл MSBuild в памяти с расширением metaproj. Есть способы заставить MSBuild сохранить этот файл на диск, чтобы вы могли проверить его, но это легко найти в Google. Файл, созданный на первом этапе, внедряется в файл metaproj и запускается после сборки.

Это был единственный способ получить новые профили публикации, чтобы получить вывод, который я использовал для получения старых веб-проектов развертывания.

Слово предупреждения: если вы хотите использовать это в сборке TFS, то в этом сценарии вы получите папку _PublishedWebsites в месте размещения, не зависящем от PublishUrl, который вы указали в файле pubxml. Это то, что я пытаюсь решить, но пока без особой радости.

У меня была та же проблема, что и выше. Я удалил следующий ключ, и автоматическая сборка начала работать нормально.

**<Content Include="website.publishproj" />**
Другие вопросы по тегам