Question

J'ai un Visual Studio 2008 Solution où la sortie principale exe est un VB.Net Winforms exe qui a plusieurs VB.Net et C # de dll liés à la même solution. La solution complète est sous le contrôle de version avec la subversion.

Maintenant, je veux automagiquement mise à jour par les fichiers générés avec le numéro de révision svn. A cet effet, j'ai trouvé ce joli projet: http://svnversiontasks.codeplex.com/ Vous devez également les MSBuild.Communuity.Tasks pour que cela fonctionne.

Il y avait un exemple msbuild sur la façon de mettre à jour le nombre de tours pour chaque projet dans votre solution que j'utilise:

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

J'ai modifié le fichier original pour inclure également le fichier AssemblyInfo.vb et enregistré comme un fichier msbuild.proj.

Cependant, si j'exécute msbuild de la console, je vois que les projets C # sont mis à jour (je peux également confirmer que des propriétés de la dll de sortie, mais mon projet vb reste inchangé:

  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.

Peut-être que la tâche ne supporte pas VB.Net. Mais peut-être que quelqu'un a une solution pour cela ...

Était-ce utile?

La solution

Si vous regardez dans le code source de la tâche, vous devriez que Version mise à jour utilise Regex pour analyser le fichier AssemblyInfo il est donc pas surprenant que si elle ne fonctionne pas avec le fichier vb.

Vous pourriez faire ce que vous voulez, en utilisant uniquement MSBuild.Community.Tasks:

  • svnversion pour obtenir la révision (Vous pouvez également utiliser la tâche SvnGetProperty de SvnVersionTasks)
  • AssemblyInfo pour générer les informations d'assemblage avec la bonne version. Cette tâche gérer VB.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top