2009-01-14 16 views
18

के संस्करण को पढ़ने के लिए मैं एक एमएसबिल्ड कार्य की तलाश में हूं जो मुझे एक विशिष्ट डीएलएल का संस्करण बताएगा। क्या इसके लिए कोई काम उपलब्ध है?एमएसबिल्ड कार्य डीएल

मेरे मामले में डीएल एक नेट असेंबली है, इसलिए मैं वास्तव में असेंबली की तलाश में हूं। पूर्ण नाम।

उत्तर

22

धन्यवाद पागलपन! मैंने सोचा कि मैं कामकाजी कोड साझा करूंगा।

<Target Name="UpdateWebConfigVersion"> 
    <GetAssemblyIdentity AssemblyFiles="lib\foo.dll"> 
     <Output TaskParameter="Assemblies" ItemName="fooAssemblyInfo"/> 
    </GetAssemblyIdentity> 
    <XmlUpdate XmlFileName="src\Web\ServiceModel.Extensions.config" 
      XPath="//extensions/behaviorExtensions/add[@name='silverlightFaults']/@type" 
      Value="foo.ServiceModel.Extensions.Behaviors.SilverlightFaultBehavior, foo, Version=%(fooAssemblyInfo.Version), Culture=neutral, PublicKeyToken=XXXXXXXX"/> 
</Target> 
+0

मैं अपनी बिल्ड स्क्रिप्ट में ज़िप फ़ाइलें बना देता हूं, इससे मुझे फ़ाइल नाम में संस्करण संख्या डालने में मदद मिली !!! धन्यवाद! – quip

+1

कामकाजी कोड उदाहरण वास्तव में मदद करता है - एक बड़ा समय बचाता है। धन्यवाद! –

25

GetAssemblyIdentity आपका आदमी है। इस कार्य आउटपुट में संस्करण, पब्लिककीटोकन और संस्कृति नामक आइटम मेटाडेटा प्रविष्टियां शामिल हैं।

<ItemGroup> 
    <MyAssemblies Include="File1.dll;File2.dll" /> 
</ItemGroup> 

<Target Name="RetrieveIdentities> 
    <GetAssemblyIdentity 
     AssemblyFiles="@(MyAssemblies)"> 
     <Output 
      TaskParameter="Assemblies" 
      ItemName="MyAssemblyIdentities"/> 
    </GetAssemblyIdentity> 
</Target> 
संबंधित मुद्दे