Приложение MSBuild ClickOnce: загрузка файлов по FTP после сборки - PullRequest
0 голосов
/ 18 ноября 2018

Я использую MS build для публикации моего приложения ClickOnce в командной строке разработчика Visual Studio 2017 на удаленном ftp-сайте. Как начать загрузку файла FTP, который начинается в Visual Studio после сборки? Это моя командная строка, которая строит проект:

msbuild  /target:publish -property:Configuration=Release /p:PlatformTarget=x86 "%USERPROFILE%\VSProjects\IIC\IIC.UI.vbproj"

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Есть 2 проблемы с командной строкой Щелкните один раз развертывание: (1) Параметр автоматического увеличения на странице свойств публикации проекта не учитывается в командной строке, и (2) темавопрос, начиная загрузку по FTP на удаленный сайт.

Решение (с командной строкой Visual Studio 2017 для разработчиков v15.7.3)

  1. Загрузите задачи сборки сообщества MS отсюда: https://github.com/loresoft/msbuildtasks
  2. Выгрузите проект, откройте его с помощью notepad ++ или выбранного редактора и импортируйте задачи сборки сообщества ms.Следуйте инструкциям на их странице github.
  3. Добавьте файл ProjectName.version.txt всего одной строкой с информацией о версии вашего проекта.Например:

1.2.78.1341

Цифры соответствуют {Major}.{Minor}.{Build}.{ApplicationRevision}

Добавьте следующую цель в конец проекта, которая использует задачи сообщества Version и FileUpdate:

   <Target Name="beforePublishCmd">

  <Message Text="revision before: 3.0.0.$(ApplicationRevision)"/>
   <Version VersionFile="ProjectName.version.txt" BuildType="Automatic" Major="3" Minor="0" Build="0" RevisionType="Increment">
      <Output TaskParameter="Major" PropertyName="Major" />
      <Output TaskParameter="Minor" PropertyName="Minor" />
      <Output TaskParameter="Build" PropertyName="Build" />
      <Output TaskParameter="Revision" PropertyName="ApplicationRevision" />
      </Version>
      <Message Text="revision after: 3.0.0.$(ApplicationRevision)"/>
      <FileUpdate Files="ProjectName.vbproj"
            Regex="&lt;ApplicationRevision&gt;(\d+)"
            ReplacementText="&lt;ApplicationRevision&gt;$(ApplicationRevision)" />
</Target>

Вызовите указанную выше цель из командной строки ПЕРЕД вызовом цели публикации, например:

msbuild /target:beforePublishCmd -property:Configuration=Release /p:PlatformTarget=x86 "%USERPROFILE%\VSProjects\ProjectName.vbproj"

Добавьте цель "afterPublish", которая используетзадача сообщества FtpUploadDirectoryContent .Эта цель автоматически вызывается после завершения цели публикации.

 <Target Name="afterPublish">

<PropertyGroup>
  <CurrentDate>$([System.DateTime]::Now.ToString(yyyy MMM dd HH:mm:ss))</CurrentDate>
</PropertyGroup>

 <FtpUploadDirectoryContent 
         ServerHost="projectname.org"
         Username="*****"
         Password="*****"
         LocalDirectory=".\bin\Release\app.publish"
         RemoteDirectory="/"
         Recursive="true"
     />
<Exec Command="C:\Progra~1\TortoiseSVN\bin\svn commit ..\ --non-interactive --message &quot;Release 3.0.0.$(Revision) on $(CurrentDate): $(commitMessage)&quot;"/>          
 </Target>

Наконец, вызовите цель публикации из командной строки:

msbuild / target: publish -property: Configuration = Release / p: PlatformTarget = x86 "% USERPROFILE%\ VSProjects \ ProjectName.vbproj "

0 голосов
/ 19 ноября 2018

Приложение MSBuild ClickOnce: загрузка файлов после сборки

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

Для этого выгрузитеваш проект.Затем в самом конце </project>, непосредственно перед конечным тегом, поместите ниже сценарии:

<ItemGroup>
    <UploadFiles Include="ThePathOfYourUploadFiles\*.*"/>
</ItemGroup>

<Target Name="AfterBuild">
    <Copy
        SourceFiles="@(UploadFiles)"
        DestinationFolder="PathWhereYouWantTouploadYourUploadFiles"
    />
</Target>

С этой целью Visual Studio / MSBuild загрузит файлы после сборки.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...