Sagen wir, ich habe eine alte Anwendung, die versuchen wird, eine externe Baugruppe zu laden.Wie CLR 2-Anwendung als CLR 4-Anwendung ausgeführt wird
- ist die alte Anwendung kompiliert innerhalb CLR 4. I 2.
- Die neue Baugruppe auf CLR kompiliert auf CLR 4.
Ich möchte in der Lage sein, die alte Anwendung auszuführen erinnern Es gab einige xml manifest magic beteiligt.
Wie kann ich diese Manifest-XML-Datei erstellen, um anzugeben, dass oldapplication.exe unter CLR 4 ausgeführt werden soll?
Ich fand einige Vorschläge, aber sie scheinen nicht für mich zu arbeiten.
- http://www.mibuso.com/forum/viewtopic.php?f=23&t=33840&view=next
- http://geekswithblogs.net/technetbytes/archive/2007/06/01/112928.aspx
- http://msdn.microsoft.com/en-us/library/a5dzwzc9.aspx
oldapplication.exe.config:
<?xml version ="1.0"?>
<configuration>
<startup>
<!--set the appropriate .net version-->
<requiredRuntime version="4.0.0.0"/>
</startup>
</configuration>
Während geben einen weiteren Schuss ich diese Datei als meine templ dienen gefunden aß:
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.20506 \ Aspnet_regsql.exe.config
<?xml version ="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v4.0.20506"/>
<requiredRuntime version="v4.0.20506" safemode="true"/>
</startup>
</configuration>
ich den Code auch aktualisiert aktuellen CLR zu berichten:
Console.WriteLine(typeof(object).Assembly.ImageRuntimeVersion);
Es funktioniert jetzt!
+1. Ich werde das auch fragen, da ich das 64-Bit-JIT von .NET 4 für die richtige Tail Call-Unterstützung wirklich brauche. – leppie