SVNバージョンタスクを使用してVBプロジェクトのバージョンを設定する方法
-
02-10-2019 - |
質問
Main Output exeは、同じソリューションからリンクされているいくつかのVB.NETとC#DLLを備えたVB.NET WINFORMS EXEであるVisual Studio 2008ソリューションがあります。ソリューション全体は、subversionを使用してバージョン制御下にあります。
次に、現在のSVNリビジョン番号を使用して生成されたファイルによって自動的に更新します。この目的のために、私はこのきちんとしたプロジェクトを見つけました: http://svnversiontasks.codeplex.com/また、これが機能するには、msbuild.communuty.tasksが必要です。
私が使用しているソリューションのすべてのプロジェクトのREV番号を更新する方法に関する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=""$(VS90COMNTOOLS)..\IDE\devenv" ..\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 改訂を取得するには(svnversiontasksからsvngetpropertyタスクを使用することもできます)
- AssemblyInfo 適切なバージョンでアセンブリ情報を生成します。このタスクはVBを処理します。
所属していません StackOverflow