Можно ли использовать события посткомпоновки Visual Studio с публикацией ClickOnce? - PullRequest
8 голосов
/ 08 октября 2010

В Visual Studio 2008 можно ли использовать событие после сборки с публикацией ClickOnce?Если да, то как?

Из коробки похоже, что я могу использовать только события предварительной сборки, и публикация ClickOnce, по-видимому, создает проект в другом месте до запуска события после сборки.*

Ответы [ 2 ]

7 голосов
/ 12 октября 2010

При просмотре файлов MSBuild, которые использует Visual Studio, событие после сборки запускается целью сборки. Если вы запускаете msbuild из командной строки и напрямую вызываете цель публикации, она определенно сначала вызывает Build. Если щелкнуть правой кнопкой мыши проект в VS и щелкнуть «Опубликовать», запускается урезанная цель с именем PublishOnly, при условии, что VS уже выполнил сборку.

Событие после сборки должно запускаться Visual Studio, когда он автоматически создает проект перед публикацией. На вкладке «События сборки» в свойствах вашего проекта вы установили событие «всегда запускать»?

Если вы хотите более подробно рассказать о том, что происходит перед публикацией, есть цель BeforePublish, которую всегда ищет публикация, независимо от того, выполняется она MSBuild или Visual Studio. Отредактируйте файл проекта вручную, и внизу вы увидите пару закомментированных целевых элементов. Добавьте свой собственный как это:

<Target Name="BeforePublish">
    <Exec Condition="'$(PostBuildEvent)' != ''" 
          WorkingDirectory="$(OutDir)" Command="$(PostBuildEvent)" />
</Target>

Это будет запускать то же событие после сборки, которое вы определили в своем проекте, но вы можете поместить любые задачи MSBuild в эти элементы Target.

0 голосов
/ 24 октября 2010

Я думаю, вы найдете полезную запись в блоге . Трюки с app.config и развертыванием ClickOnce .В нем говорится о наличии различных app.config файлов для каждого типа развертывания.

...