كيفية استخدام مهمة إصدار SVN لتعيين إصدار مشروع VB

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

  •  02-10-2019
  •  | 
  •  

سؤال

لديّ حل Visual Studio 2008 حيث يكون EXE exe الرئيسي هو exe vb.net winforms الذي يحتوي على العديد من VB.NET و C# DLL من نفس الحل. الحل بأكمله تحت التحكم في الإصدار مع التخريب.

الآن أريد التحديث تلقائيًا بواسطة الملفات التي تم إنشاؤها باستخدام رقم المراجعة SVN الحالي. لهذا الغرض ، وجدت هذا المشروع الأنيق: http://svnversiontasks.codeplex.com/تحتاج أيضًا إلى msbuild.communuity.tasks لهذا العمل.

كان هناك مثال MSBuild على كيفية تحديث رقم Rev لكل مشروع في الحل الذي أستخدمه:

  <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. ولكن ربما لدى شخص ما حل لهذا ...

هل كانت مفيدة؟

المحلول

إذا نظرت إلى رمز مصدر Tortpvision في updatevers ، فيجب أن تستخدم Regex لتحليل ملف AssemblyInfo بحيث لا يكون مفاجئًا إذا لم يعمل مع ملف VB.

يمكنك أن تفعل ما تريد ، فقط باستخدام msbuild.community.tasks:

  • svnversion للحصول على المراجعة (يمكنك أيضًا استخدام مهمة SVNGetProperty من SVNVersionTasks)
  • AssemblyInfo لإنشاء معلومات التجميع مع الإصدار الصحيح. هذه المهام تتعامل مع VB.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top