سؤال

لدي إصدار قيد التشغيل في TFS TeamBuild.أريد تمرير خاصية من ذلك إلى MSBuild الذي يتم تشغيله لكل مشروع تم إنشاؤه بواسطة TFSBuild.proj.

مثال:

TFSBuild.proj

<PropertyGroup>
   <Version>0.0.0.0</Version>
</PropertyGroup>

<Target Name="BuildNumberOverrideTarget" 
        DependsOnTargets="AfterInitializeWorkspace">

  <!--Code that loads the version from a file (removed).-->

  <PropertyGroup>
    <!--Save off the version.-->
    <Version>$(TxCompleteVersion)</Version>
</PropertyGroup>

MyWIXProjectFile.wixproj

<Target Name="BeforeBuild">
<PropertyGroup>
  <!--If Version is defined then use that.  
   Else just use all zeros to show that this is a developer built version-->
  <CurrentVersion Condition="'$(Version)' == ''" >0.0.0.0</CurrentVersion>
  <CurrentVersion Condition="'$(Version)' != ''" >$(Version)</CurrentVersion>
</PropertyGroup>
<Message Condition="'$(Version)' == ''" 
         Text="Version info is empty (i.e. a developer build).  Version set to $(CurrentVersion)"/>

</Target>

عندما يتم إنشاء MyWixProjectFile.wixproj، تتم طباعة الرسالة التي توضح أن $(Version) فارغًا في كل مرة.

هل هناك طريقة يمكنني من خلالها الحصول على ملف المشروع لرؤية خصائص TFSBuild.proj؟

فاكانو

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

المحلول 2

يتم ذلك عبر بيانات تعريف الخصائص الموجودة في علامة SolutionToBuild.على سبيل المثال:

  <ItemGroup>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\ChangeThisOne.sln">
      <Targets></Targets>
      <Properties>Change=True</Properties>
    </SolutionToBuild>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\ChangeThisToo.sln">
      <Targets></Targets>
      <Properties>Change=True</Properties>
    </SolutionToBuild>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\DontChangeThis.sln">
      <Targets></Targets>
      <Properties>Don'tChange=False</Properties>
    </SolutionToBuild>
  </ItemGroup>

نصائح أخرى

أنا لست خبيرًا في Wix ولكني وجدت هذا واعتقدت أنه يمكنك تجربته.

تعيين خصائص WiX في MSBuild

الخيار 1

استخدم MSBuild للاتصال مباشرة بـ MyWIXProjectFile.wixproj وتمرير الإصدار كخاصية

الخيار 2

قم بتجريد بناء wix إلى البرنامج النصي الخاص به ثم استخدم MSBuild للاتصال مباشرة وتمرير جميع الخصائص الضرورية.لدي مدونة مع التنفيذ الكامل للقيام بذلك في http://blog.newagesolution.net/2008/06/how-to-use-msbuild-and-wix-to-msi.html قد يكون ذلك محل اهتمامك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top