Как использовать Svn Version Task для установки версии проекта vb - PullRequest
2 голосов
/ 03 мая 2010

У меня есть решение Visual Studio 2008, в котором основной выходной файл exe - это VB.Net Winforms exe, в котором есть несколько VB.Net и C # dll, связанных из одного решения. Все решение находится под контролем версий с помощью Subversion.

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

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

  <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. Но, может быть, у кого-то есть решение для этого ...

1 Ответ

0 голосов
/ 03 мая 2010

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

Вы можете делать что хотите, только используя MSBuild.Community.Tasks:

  • SvnVersion для получения Revision (Вы также можете использовать задачу SvnGetProperty из SvnVersionTasks)
  • AssemblyInfo для создания информации о сборке с верной версией. Эти задачи обрабатывают VB.
...