MSBuild не создает веб-страницу публикации (ClickOnce)

я сталкиваюсь с проблемой, что когда я публикую свое приложение ClickOnce через MSBuild (4.0),публикации.НТМ (или по умолчанию.htm) не создается в приложении.опубликовать папку.

при публикации через Visual Studio он получает ящик...

в моем .файл csproj у меня есть следующие свойства, и он все еще не работает...

<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>default.htm</WebPage>

какие идеи?

спасибо

3 ответов


Я использую Visual Studio 2015, но в противном случае было то, что звучит как та же или подобная проблема. Решение состояло в том, чтобы открыть свойства файла проекта в Visual Studio, перейти к настройкам "опубликовать"и щелкнуть правой кнопкой мыши [параметры...]. Откроется диалоговое окно "Параметры публикации". Выберите "развертывание", и если вы видите, что" веб-страница развертывания "пуста (моя была), введите "опубликовать".htm", затем вы сможете проверить " автоматически генерировать веб-страницу развертывания после каждого опубликовать " (вам нужно проверить это). Нажмите кнопку [OK], чтобы закрыть диалоговое окно и затем опубликовать. Ваша " публикация.теперь должен появиться файл htm.


Я нашел хорошее решение здесь. Для публикации можно использовать шаблон.htm с {VERSION} местозаполнителем внутри. Задачи Сообщества MSBuild необходимы для задачи FileUpdate.

ВЕРСИЯ_СБОРКИ - переменная окружения, заданная моим скриптом сборки. PublishDir свойство задано в аргументе для msbuild.

  <!-- .... -->

  <Target Name="DoPublish">
    <MSBuild Projects="$(ProjectFileName)" Targets="Publish" Properties="ApplicationVersion=$(BUILD_VERSION)" />
    <!-- Write publish.htm file for ClickOnce -->
    <Copy SourceFiles="$(ProjectDir)\publish.htm" DestinationFiles="$(PublishDir)\publish.htm"/>
    <FileUpdate Files="$(PublishDir)\publish.htm"
                IgnoreCase="true"
                Multiline="true" 
                Singleline="false"
                Regex="{VERSION}" 
                ReplacementText="$(BUILD_VERSION)"/>
  </Target>

</Project>

Я просто решил эту проблему, используя код, доступный в этом блоге Майка Уэйда: http://blogs.msdn.com/b/mwade/archive/2009/02/28/how-to-generate-publish-htm-with-msbuild.aspx

очень полезно!

Ура.