2013-02-28 4 views
24

हमारे पास हमारे वेब एप्लिकेशन में AssemblyInfo.cs फ़ाइल है लेकिन हमारे पास एक ही समाधान में अन्य परियोजनाएं हैं। वे ज्यादातर कक्षा पुस्तकालय हैं। मुझे हमारे यूआई पर AssemblyInfo.cs से विधानसभा संस्करण प्रदर्शित करने के लिए कहा गया है। मैं से C# AssemblyFileVersion usage within a programAssemblyInfo.cs से असेंबली संस्करण प्राप्त करना

using System.Reflection; 
Version version = Assembly.GetExecutingAssembly().GetName().Version; 

या

using System.Reflection; 
using System.IO; 

FileVersionInfo fv = System.Diagnostics.FileVersionInfo.GetVersionInfo 
           (Assembly.GetExecutingAssembly().Location); 

Console.WriteLine("AssemblyVersion : {0}", 
     Assembly.GetExecutingAssembly().GetName().Version.ToString()); 

Console.WriteLine ("AssemblyFileVersion : {0}" , 
     fv.FileVersion.ToString()); 

अतः में निम्नलिखित समाधान मिल गया है लेकिन यह मुझे थोड़ा सा confuses। यह GetExecutingAssembly() कहता है और यदि यह अन्य वर्ग पुस्तकालयों से किसी अन्य असेंबली पर चल रहा है तो क्या होगा? क्या वे कोड AssemblyInfo.cs फ़ाइल से प्राप्त होंगे जो हर समय वेब प्रोजेक्ट में रह रहे हैं? Assembly.GetExecutingAssembly() विधानसभा कि बुला कोड के अंदर संकलित किया गया हो जाता है, (जो मैं चाहता)

+0

http://stackoverflow.com/questions/2724546/how-to-get-assembly-version-not-file-version-for-another-exe यह सवाल वार्ता किसी भी असेंबली के संस्करण प्राप्त करने के बारे में। –

+0

के लिए धन्यवाद लेकिन मुझे किसी भी असेंबली की आवश्यकता नहीं है, इसके बजाय मैं 'AssemblyInfo.cs' से चाहता हूं और मैं यह सुनिश्चित करना चाहता हूं कि यह वहां से आ रहा है। – Tarik

उत्तर

22

प्रलेखन राज्यों के रूप में।

यदि आप अधिक स्पष्ट (और तेज़) होना चाहते हैं, तो आप typeof(SomeType).Assembly लिख सकते हैं, जहां SomeType उस प्रोजेक्ट में कोई भी प्रकार है जिसे आप ढूंढ रहे हैं।

+1

तो फिर तुम मुझे दिखा सकता है कि 'वेब अनुप्रयोग AssemblyInfo.cs'of हर समय से विधानसभा संस्करण की जानकारी प्राप्त करने के लिए? मैं सिर्फ यह सुनिश्चित करना चाहता हूं कि मुझे जिस क्षेत्र की आवश्यकता है वह वहां से आ रहा है। – Tarik

+1

@ तारिक: उस परियोजना से किसी भी प्रकार का उपयोग करें। – SLaks

+0

इस उत्तर ने मुझे निम्नलिखित (वीबी) कोड का नेतृत्व किया: 'नया एप्लीकेशन सर्विसेज। एस्सेप्लोरइन्फो (प्रतिबिंब। एस्सेप्लोर्स। गेटएक्सिंगिंगएस्परब्स()) ' – CrazyIvan1974

-1

यदि आप फ़ाइल पढ़ना चाहते हैं तो आप यह कर सकते हैं।

string path = @"d:\AssemblyInfo.cs"; 
     if (File.Exists(path)) 
     { 
      // Open the file to read from. 
      string[] readText = File.ReadAllLines(path); 
      var versionInfoLines = readText.Where(t => t.Contains("[assembly: AssemblyVersion")); 
      foreach (string item in versionInfoLines) 
      { 
       string version = item.Substring(item.IndexOf('(') + 2, item.LastIndexOf(')') - item.IndexOf('(') - 3);   
       Console.WriteLine(version); 
      } 

     } 

आउटपुट

1.0.0.0 
+0

प्रिय भगवान नहीं धन्यवाद – Jonesopolis

संबंधित मुद्दे