Как использовать задачу версии SVN для установки версии проекта VB

StackOverflow https://stackoverflow.com/questions/2757365

  •  02-10-2019
  •  | 
  •  

Вопрос

У меня есть решение Visual Studio 2008, где основной вывод EXE представляет собой VB.NET Winforms EXE, который имеет несколько VB.NET и C# DLL, связанных с тем же решением. Все решение находится под контролем версий с подрывной деятельностью.

Теперь я хочу автоматически обновить сгенерированными файлами с текущим номером пересмотра SVN. Для этого я нашел этот аккуратный проект: http://svnversiontasks.codeplex.com/Вам также нужен msbuild.communuity.tasks для работы.

Был пример MSBuild о том, как обновить номер Rev для каждого отдельного проекта в вашем решении, которое я использую:

  <Import Project="$(MSBuildExtensionsPath)\SvnTools.Targets\SvnTools.Tasks.VersionManagement.Tasks" />
  <Target Name="build">
    <CreateItem Include="../**/AssemblyInfo.vb;../**/AssemblyInfo.cs;../**/Properties/AssemblyInfo.cs">
      <Output TaskParameter="Include" ItemName="AssemblyInfoFiles" />
    </CreateItem>
    <CreateItem Include="../**/*.vdproj;*.vdproj">
      <Output TaskParameter="Include" ItemName="DeploymentProjectFiles" />
    </CreateItem>
    <UpdateVersion AssemblyInfoFiles="@(AssemblyInfoFiles)" DeploymentProjectFiles="@(DeploymentProjectFiles)" Format="yyyy.mm.dd.rev" />
    <Exec Command="&quot;$(VS90COMNTOOLS)..\IDE\devenv&quot; ..\MyApp.sln /build" />
    <RevertVersionChange AssemblyInfoFiles="@(AssemblyInfoFiles)" DeploymentProjectFiles="@(DeploymentProjectFiles)" />
  </Target>

Я изменил исходный файл, чтобы также включить файл AssemblyInfo.vb и сохранил его в качестве файла msbuild.proj.

Однако, если я выполняю MSBuild из консоли, я увижу, что проекты C# обновляются (я также могу подтвердить, что из свойств выходного DLL, но мой проект VB остается неизменным:

  Reverting version number change: ../App1\AssemblyInfo.vb
  Updating version number (to rev 0) for file: ../App1\AssemblyInfo.vb
D:\Source\MyApp\MyAppDeploy\MyAppDeploy.csproj : warning : Version attribute not found, file not updated.

  Reverting version number change: ../App2\Properties\AssemblyInfo.cs
  Updating version number (to rev 0) for file: ../App2\Properties\AssemblyInfo.cs
  Successfully updated file.

Может быть, задача не поддерживает vb.net. Но, может быть, у кого -то есть решение для этого ...

Это было полезно?

Решение

Если вы изучите исходный код задачи Updateversion, вы должны использовать Regex для анализа файла AssemblyInfo, чтобы неудивительно, если он не работает с файлом VB.

Вы можете сделать то, что хотите, только используя msbuild.community.tasks:

  • Svnversion Чтобы получить пересмотр (вы также можете использовать задачу SvngetProperty от SvnversionTasks)
  • Ассамбинфинфо Чтобы сгенерировать информацию об сборке с правильной версией. Эти задачи обрабатывают VB.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top