2009-01-14 27 views
18

Belirli bir dll sürümünü bana söyleyecek bir MSBuild görevi arıyorum. Bunun için bir görev var mı? Benim durumumdaMSBuild Görevi okumak için dll

dll bir .Net montaj olduğunu, bu yüzden aslında Assembly.FullName arıyorum.

cevap

22

Teşekkürler madgnome! Çalışma kodunu paylaşacağımı düşündüm.

<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

Yapım komut dosyamda zip dosyaları yapıyorum, bu dosya adında sürüm numarasını koymam için bana yardımcı oldu !!! Teşekkürler! – quip

+1

çalışma kodu örnek gerçekten yardım - büyük bir zaman tasarrufu. Teşekkürler! –

25

GetAssemblyIdentity senin adamdır. Bu görev çıktıları, Version, PublicKeyToken ve Culture adlı öğe meta veri girişlerini içerir.

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

<Target Name="RetrieveIdentities> 
    <GetAssemblyIdentity 
     AssemblyFiles="@(MyAssemblies)"> 
     <Output 
      TaskParameter="Assemblies" 
      ItemName="MyAssemblyIdentities"/> 
    </GetAssemblyIdentity> 
</Target>