Determine.NET wersja Framework dla dll
Mam stary dll, który został skompilowany na. Net framework i wdrożony. Nie jestem pewien, z którą wersją.NET framework został skompilowany. Zastanawiam się, jak Mogę określić, która wersja. NET framework ten dll został skompilowany? Nie mogę ufać kodowi źródłowemu, ponieważ uważam, że został on zaktualizowany do Visual Studio 2008 i zmieniony na. Net Framework w wersji 3.5.
14 answers
Załaduj go do Reflektora i zobacz do czego się odnosi?
Na przykład:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-17 14:36:37
W PowerShell możesz użyć następujących opcji, aby uzyskać docelowy czas pracy:
$path = "C:\Some.dll"
[Reflection.Assembly]::ReflectionOnlyLoadFrom($path).ImageRuntimeVersion
W tym przypadku nie jest to możliwe.
Jeśli chcesz poznać docelową wersję frameworka określoną w Visual Studio, użyj:
$path = "C:\Some.dll"
[Reflection.Assembly]::ReflectionOnlyLoadFrom($path).CustomAttributes |
Where-Object {$_.AttributeType.Name -eq "TargetFrameworkAttribute" } |
Select-Object -ExpandProperty ConstructorArguments |
Select-Object -ExpandProperty value
Powinieneś dostać coś takiego
.NETFramework, Version = v4.5.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:22
DotPeek jest świetnym (darmowym) narzędziem do wyświetlania tych informacji.
Jeśli masz kilka problemów z chwytaniem reflektora, jest to dobra alternatywa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-03 01:04:15
Możesz użyć ILDASM ...
ildasm.exe C:\foo.dll /metadata[=MDHEADER] /text /noil
I sprawdź "sekcję metadanych" na wyjściu. To byłoby coś takiego:
Sekcja metadanych: 0x424a5342, Wersja: 1.1, extra: 0, version len: 12, Wersja: v4. 0. 30319
Tag 'version' powie Ci wersję. NET Framework. W powyższym przykładzie jest to 4.0.30319
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-21 11:39:10
Użyj ILSpy http://ilspy.net/
Open source, darmowy, zdecydowanie opcja od teraz jest płatna.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-04 16:26:07
Masz kilka opcji: aby uzyskać go programowo, z kodu zarządzanego, użyj Assembly.ImageRuntimeVersion:
Dim a As Assembly = Reflection.Assembly.ReflectionOnlyLoadFrom("C:\path\assembly.dll")
Dim s As String = a.ImageRuntimeVersion
Z linii poleceń, począwszy od wersji 2.0, ildasm.exe pokaże go, jeśli dwukrotnie klikniesz na "MANIFEST" i poszukasz "wersja metadanych". określanie wersji CLR obrazu
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-11 17:19:00
Po prostu
var tar = (TargetFrameworkAttribute)Assembly
.LoadFrom("yoursAssembly.dll")
.GetCustomAttributes(typeof(TargetFrameworkAttribute)).First();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-22 08:29:02
Kolejna opcja za pomocą Visual Studio, dodaj odniesienie do DLL do dowolnego projektu, a następnie kliknij prawym przyciskiem myszy na nowym odniesienia i kliknij Właściwości, możesz zobaczyć, czego szukasz w wersji Runtime:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-15 17:27:32
Dekompiluj go za pomocą ILDASM i spójrz na wersję mscorlib, do której się odwołujemy (powinna być prawie na samej górze).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-11 17:14:10
Najprostszy sposób: wystarczy otworzyć .dll w dowolnym edytorze tekstu. Spójrz na jedną z ostatnich linijek:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-14 14:08:27
Szybko napisałem do tego aplikację C # console:
Https://github.com/stuartjsmith/binarydetailer
Po prostu przekaż katalog jako parametr i dołoży wszelkich starań, aby powiedzieć Ci Framework sieci dla każdego dll i exe w tam
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-30 13:22:02
"Detect It Easy " znany również jako DiE jest programem do określania typów plików. Współpracuje z .pliki dll lub inne (.exe) pliki. Całkowicie bezpłatne do użytku komercyjnego i niekomercyjnego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-13 00:40:52
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-21 06:24:03
Rozszerzając odpowiedzi tutaj, to może wybuchnąć, jeśli istnieje zespół zależny. Jeśli masz szczęście i wiesz, gdzie jest zależny (lub nawet bardziej szczęśliwy, to jest w GAC) to może to pomóc ...
using System.Reflection;
using System.Runtime.Versioning;
// ...
{
AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);
var asm = System.Reflection.Assembly.LoadFrom(@"C:\Codez\My.dll");
var targetFrameAttribute = asm.GetCustomAttributes(true).OfType<TargetFrameworkAttribute>().FirstOrDefault();
targetFrameAttribute.Dump();
}
Assembly CurrentDomain_ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args)
{
var name = args.Name;
if (name.StartsWith("Depends"))
return System.Reflection.Assembly.ReflectionOnlyLoadFrom(@"C:\Codez\Depends.dll");
return System.Reflection.Assembly.ReflectionOnlyLoad(args.Name);
}
Odniesienie: https://weblog.west-wind.com/posts/2006/Dec/22/Reflection-on-Problem-Assemblies
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-25 12:06:46