Cómo utilizar Svn Versión de tareas para establecer la versión de un proyecto de VB

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

  •  02-10-2019
  •  | 
  •  

Pregunta

Tengo una solución de Visual Studio 2008, donde la salida exe principal es un VB.Net Winforms exe que tiene varias VB.Net y C # de DLL vinculado desde la misma solución. La solución entero está bajo control de versiones con subversión.

Ahora quiero automagicamente actualización de los ficheros generados con el número SVN revisión actual. Para este fin encontré este proyecto ordenada: http://svnversiontasks.codeplex.com/ También necesita los MSBuild.Communuity.Tasks para que esto funcione.

Hubo un ejemplo msbuild sobre cómo actualizar el número de revoluciones para cada proyecto individual en su solución que utilizo:

  <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>

I modificado el archivo original para incluir también el archivo AssemblyInfo.vb y se guarda como un archivo msbuild.proj.

Sin embargo, si ejecuto msbuild desde la consola veo que los proyectos de C # se actualizan (también puedo confirmar que a partir de las propiedades de la DLL de salida, pero mi proyecto de VB se mantiene sin cambios:

  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.

Tal vez la tarea no es compatible con VB.Net. Pero tal vez alguien tiene una solución para esto ...

¿Fue útil?

Solución

Si nos fijamos en UpdateVersion código fuente tarea que debe que utiliza expresiones regulares para analizar el archivo AssemblyInfo por lo que no es sorprendente si no lo hace el trabajo con el archivo de VB.

Se puede hacer lo que quiera, utilizando sólo MSBuild.Community.Tasks:

  • svnversion para obtener la revisión (También se puede utilizar la tarea de SvnGetProperty SvnVersionTasks)
  • AssemblyInfo para generar la información de montaje con la versión correcta. Esta tarea manejan VB.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top