क्या एक कमांड लाइन से एक DLL फ़ाइल के असेंबली संस्करण प्राप्त करने के लिए कोई Microsoft उपकरण है?असेंबली संस्करण?
(मुझे पता है कि मैं अपने खुद के उपकरण कोड कर सकते हैं।)
क्या एक कमांड लाइन से एक DLL फ़ाइल के असेंबली संस्करण प्राप्त करने के लिए कोई Microsoft उपकरण है?असेंबली संस्करण?
(मुझे पता है कि मैं अपने खुद के उपकरण कोड कर सकते हैं।)
यह एक ऐसा क्षेत्र है जहां PowerShell चमकता है। यदि आपके पास पहले से नहीं है, तो इसे इंस्टॉल करें। ,
Major Minor Build Revision
----- ----- ----- --------
3 0 8 0
ध्यान दें कि LoadFrom एक विधानसभा वस्तु returnes ताकि आप आप की तरह काफी कुछ भी कर सकते: यह विंडोज 7
इस कमांड लाइन चल रहा है पहले से इंस्टॉल है:
[System.Reflection.Assembly]::LoadFrom("C:\full\path\to\YourDllName.dll").GetName().Version
आउटपुट इस। एक कार्यक्रम लिखने की जरूरत नहीं है।
उन लोगों के लिए, मैं, जो इस तरह के एक उपकरण की तलाश में आते हैं जैसे:
using System;
using System.IO;
using System.Reflection;
class Program
{
public static void Main(string[] args)
{
foreach (string arg in args)
{
try
{
string path = Path.GetFullPath(arg);
var assembly = Assembly.LoadFile(path);
Console.Out.WriteLine(assembly.GetName().FullName);
}
catch (Exception exception)
{
Console.Out.WriteLine(string.Format("{0}: {1}", arg, exception.Message));
}
}
}
}
स्क्रिप्ट के रूप में रखा जाने पर कोड के इस तरह के छोटे टुकड़े सर्वश्रेष्ठ (और बनाए रखने के लिए सबसे आसान) हैं। मैं इसे प्राप्त करने के लिए सीएस-स्क्रिप्ट प्रोजेक्ट की अत्यधिक अनुशंसा करता हूं। –
वाह इस पुराने दोहन Gdiplus.dll के आसपास चल के जैसी चीजों पर विचार बुरा है।
मेरा समाधान सरल है। बैच फ़ाइल प्रोग्रामिंग। डाउनलोड का केवल 4.7MB -
इस संस्करण
आप filever.exe प्राप्त कर सकते हैं, जो Windows XP SP2 समर्थन टूल पैकेज के रूप में डाउनलोड किया जा सकता के साथ एक ही निर्देशिका में एक NFO फ़ाइल डालता है।
adobe_air_version.bat
c:\z\filever.exe /A /D /B "C:\Program Files\Common Files\Adobe AIR\Versions\1.0\Adobe AIR.dll" >000_adobe_air.dll_VERSION.nfo
exit
रूपांतर।
एक निर्देशिका में सभी संस्करणों को एक पाठ फ़ाइल में प्राप्त करें।
c:\z\filever.exe /A /D /B "c:\somedirectory\ *.dll *.exe >000_file_versions.nfo
exit
सिस्टर्नल्स द्वारा सिगचेक भी है।
http://technet.microsoft.com/en-us/sysinternals/bb897441.aspx
फ़ाइल संस्करण उपकरण में मदद मिलेगी:
filever /V YourDllName.dll
यह कहां और कहाँ है? – Brannon
यह XP में उपयोग किया जाता था http://support.microsoft.com/kb/913111 –
यह [Windows XP सर्विस पैक 2 समर्थन उपकरण] में है (http://www.microsoft.com/en-us/download/ details.aspx? id = 18,546)। हालांकि, यह केवल एक एक्सपी सिस्टम पर स्थापित किया जा सकता है। इसलिए, Win7/8 के लिए फ़ाइल प्राप्त करने के लिए, 7-ज़िप जैसे टूल के साथ इंस्टॉलेशन exe 'unzip' करें। अंदर 'support.cab' फ़ाइल निकालें। फिर भी, फिर से, 7-ज़िप का उपयोग करके इस सीएबी को अनपैक करें और आप 'filever.exe' प्राप्त कर सकते हैं। – laifukang
आप मोनो और लिनक्स का उपयोग करते हैं, इस प्रयास करें:
monodis --assembly MyAssembly.dll
find . -name MyAssembly.dll -exec monodis --assembly {} ';' | grep Version
आप GACUTIL उपयोग करते हैं?
आप नीचे दिए गए इस आदेश से असेंबली संस्करण प्राप्त कर सकते हैं।
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe /L "<your assembly name>"
/एल [
यदि मेरे पास स्थानीय असेंबली है, तो यह मेरे लिए काम नहीं करता है, उदा। एक NUGET पैकेज के अंदर। गैकुटिल केवल जीएसी में असेंबली के लिए काम करता है। – Matt
Powershell
$version = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("filepath.exe").FileVersion.ToString()
में मैं चयनित जवाब इस्तेमाल किया जब तक मैं कई विधानसभाओं
[System.Reflection.Assembly]::ReflectionOnlyLoadFrom("C:\full\path\to\YourDllName.dll").GetName().Version
का उपयोग कर उन मामलों में काम करना चाहिए के लिए निम्न त्रुटि Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context.
मिला (शायद सभी मामलों)
क्या यह काम मिश्रित मोड असेंबली में करने का कोई तरीका है? –
मैं उम्मीद करता हूं कि यह समान रूप से काम करे। मेरे परीक्षण विफल हुए, हालांकि, एक त्रुटि संदेश के साथ जो कहता है कि मिश्रित मोड असेंबली का रनटाइम संस्करण लोड किए गए से नया है - यह नहीं पता कि इसे कैसे रोकें। – OregonGhost
केवल संस्करण संख्या प्राप्त करने के लिए, अंत में '.ToString()' संलग्न करें, उदा। '[System.Reflection.Assembly] :: LoadFrom (" YourDllName.dll ")। GetName()। संस्करण.ToString()' –