Frage

Ich habe eine Visual Studio 2008-Lösung, wo der Hauptausgang exe ist ein VB.Net Winforms exe, die aus der gleichen Lösung verknüpfen mehr VB.Net und C # DLL hat. Die gesamte Lösung ist unter Versionskontrolle mit Subversion.

Jetzt möchte ich Update von generierten Dateien mit der aktuellen SVN-Revisionsnummer automatisch. Zu diesem Zweck fand ich dieses ordentlich Projekt: http://svnversiontasks.codeplex.com/ Sie müssen auch die MSBuild.Communuity.Tasks für diese Arbeit.

Es war ein msbuild Beispiel dafür, wie die U-Nummer für jedes einzelne Projekt in Ihrer Lösung zu aktualisieren, die ich benutze:

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

modifizierte ich die Originaldatei auch die AssemblyInfo.vb Datei enthalten und gespeichert es als msbuild.proj Datei.

Allerdings, wenn ich ausführen msbuild von der Konsole sehe ich, dass die C # Projekte aktualisiert werden (ich kann auch bestätigen, dass sich aus den Eigenschaften der Ausgangs dll aber mein vb Projekt bleibt unverändert:

  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.

Vielleicht ist die Aufgabe unterstützen VB.Net nicht. Aber vielleicht hat jemand eine Lösung für dieses ...

War es hilfreich?

Lösung

Wenn man sich in Updateversion Aufgabe Quellcode sollten Sie, dass es Regex verwendet die Assemblydatei zu analysieren, so dass es nicht verwunderlich ist, wenn es nicht die Arbeit mit vb Datei der Fall ist.

Sie können tun, was Sie wollen, nur MSBuild.Community.Tasks mit:

  • svnversion , um die Revision zu erhalten (Sie auch die SvnGetProperty Aufgabe von SvnVersionTasks verwenden könnten)
  • Assembly die Montage Info mit der richtigen Version zu erzeugen. Diese Aufgaben übernehmen VB.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top