ฉันจะบังคับให้แอปพลิเคชัน C# ของฉันทำงานโดยใช้รันไทม์ .net 4.5 ได้อย่างไร แม้ว่าฉันจะติดตั้ง 4.5, 4.6, 4.7, 4.8 และอื่น ๆ แล้วหรือยัง?
เหตุผลที่ฉันพยายามทำเช่นนี้ก็เพราะฉันต้องการสร้างจุดบกพร่องที่มีอยู่ใน WPF เวอร์ชันก่อนหน้า ดังนั้นฉันจึงต้องการเรียกใช้โค้ดกับ .Net เวอร์ชันก่อนหน้าโดยไม่ต้องถอนการติดตั้งอะไรเลย
ฉันลองทำสิ่งต่อไปนี้:
- กรอบเป้าหมาย .Net 4.5 ในการตั้งค่าการสร้างแอปพลิเคชัน
จากนั้นเพิ่มการกำหนดค่าต่อไปนี้:
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
To test if it was running the 4.5 runtime, I tried to access something added after 4.5 :
private static bool Is462Installed()
{
// API changes in 4.6.2: https://github.com/Microsoft/dotnet/blob/master/releases/net462/dotnet462-api-changes.md
return Type.GetType("System.Security.Cryptography.AesCng, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", false) != null;
}
แต่มันก็กลับเป็นความจริง ดังนั้นจึงไม่ได้ใช้รันไทม์. Net 4.5 ใช่ไหม
ฉันเดาว่ามันจะใช้รันไทม์ล่าสุดที่คุณติดตั้งไว้เสมอ?