ไดเรกทอรี .NET Framework 4.5 อยู่ที่ไหน


146

ผมได้ติดตั้ง Windows 8 Visual Studio 2012 แต่ไม่ได้มีไดเรกทอรี v4.5 %WINDIR%\Microsoft.NET\Frameworkใน

ฉันได้ทำบางสิ่งผิดปกติหรือว่า. NET 4.5 นั้นแตกต่างจากผู้อื่นหรือไม่?

หากเป็นเพราะฉันยังไม่ได้ติดตั้งเครื่องมือมีชุดเครื่องมือต่าง ๆ ให้ดาวน์โหลดหรือไม่ เท่าที่ฉันสามารถบอกได้ฉันสามารถสร้างแอป. NET 4.5 ได้


1
@Gustavo โปรดหยุดการแก้ไขแท็กนั้นเป็นคำถาม ชื่อผลิตภัณฑ์ไม่ใช่ 2011 แต่เป็น 11 และมีแท็กที่มีอยู่แล้ว
ชาร์ลส์

1
.NET 4.5 เป็นการแทนที่ อ้างถึงโพสต์บล็อกนี้
วีเจย์

เป็นไปได้ที่ซ้ำกัน: stackoverflow.com/questions/9546353/…
Houman

คำตอบ:


152

.NET 4.5 เป็นการแทนที่สำหรับ 4.0 - คุณจะพบแอสเซมบลีในไดเรกทอรี 4.0

ดูบล็อกของRick StrahlและScott Hanselmanในหัวข้อนี้

คุณสามารถค้นหารุ่นที่ต้องการได้ใน:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework

1
ขอบคุณ แต่สิ่งที่เกี่ยวกับหน้านี้จาก MSDN msdn.microsoft.com/en-us/library/bb397428 มันพูดถึงไดเรกทอรี 4.5.0.0?
Nick Randell

@NickRandell - คุณถามเกี่ยวกับการชุมนุม บทความนั้นเกี่ยวกับ SDK / เครื่องมือ
Oded

@NickRandell - และเนื่องจากที่ไม่ได้อยู่ในระบบของคุณให้ดูที่รุ่นของการประกอบในไดเรกทอรี 4.0 เพื่อดูว่าพวกเขาเป็น 4.5 จริง ๆ (ตามที่อธิบายไว้ในบล็อกที่เชื่อมโยง)
Oded

ฉันมี 4.5 อยู่ในไดเรกทอรีเหล่านั้น แต่มีความคิดเกี่ยวกับเครื่องมือหรือไม่
Nick Randell

5
FYI: ฉันเพิ่งติดตั้ง v4.5.2 บน Windows Server 2008 R2 ของฉัน แอสเซมบลีที่เป็นจริงใน C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 ตามที่จอน Skeet
harsimranb

86

แก้ไข: คำตอบนี้ถูกต้องจนถึงกลางปี 2013 แต่คุณอาจจะมีรุ่นล่าสุดขึ้นตั้งแต่การเปลี่ยนแปลง MSBuild ใหญ่ ดูคำตอบจาก Jonny Leedsสำหรับรายละเอียดเพิ่มเติม

รุ่นภายใต้C:\Windows\Microsoft.NET\Framework\v4.0.30319จริง ๆ แล้วคือ . NET 4.5 มันแปลกเล็กน้อย แต่แน่นอนmscorlibว่ามีสิ่งAsyncTaskMethodBuilderอื่น ๆ ที่ใช้สำหรับ async

.NET 4.5 เขียนทับ . NET 4 ได้อย่างมีประสิทธิภาพ


เรื่องนี้ยังคงเป็นจริงกับการเปิดตัวอย่างเป็นทางการหรือไม่?
Earlz

@ Kiquenet: ฉันสงสัยว่าจะถูกลบออกรุ่นสุดท้าย; มันมีให้เป็นแพ็คเกจแยกต่างหาก
Jon Skeet

นี่เกือบจะเป็นจริง - แต่ msbuild ได้ย้ายไป - ดูโพสต์ด้านล่างของฉัน
JonnyRaa

@JonnyLeeds: ขอบคุณ - ได้เพิ่มการอ้างอิงไปยังโพสต์บล็อก
Jon Skeet

28

.NET 4.5 ไม่ใช่รุ่นที่วางเคียงข้างกันแทนที่ชุดประกอบสำหรับ 4.0 เหมือนกับ NET 3.0, 3.5 และ 3.5SP1 แทนที่ชุดประกอบสำหรับ 2.0 และเพิ่มใหม่บางส่วน รุ่น CLR ยังคงเป็น 4.0.30319 คุณสนใจเฉพาะเกี่ยวกับแอสเซมบลีอ้างอิงพวกเขาอยู่ในแอสเซมบลี c: \ program โปรแกรม \ อ้างอิง


ฉันคิดว่า 3.0 และ 3.5 เพิ่งเพิ่มชุดประกอบ - ไม่แทนที่ (พูด) mscorlib อย่างที่ 4.5 ทำ หรืออาจเป็นจริงสำหรับ 3.0 แต่ไม่ใช่ 3.5?
Jon Skeet

@ จอน - ไม่พวกเขาถูกแทนที่แล้วจริง ๆ นั่นทำให้เกิดความทุกข์ยากเพราะ [AssemblyVersion] ไม่เปลี่ยนแปลง การเพิ่ม WaitHandle.WaitOne (int) ที่เพิ่มเข้ามานั้นมีชื่อเสียงมาก มีมาตรการตอบโต้ใน. NET 4 เพื่อหลีกเลี่ยงปัญหานี้ชุดประกอบการอ้างอิงไม่ได้คัดลอกชุดประกอบ GAC-ed อีกต่อไป เป็นพิเศษไม่มี IL
Hans Passant

สำหรับการทดสอบในหลาย ๆ รุ่นมีทางเลือกอื่น ๆ สำหรับเครื่องเสมือนหรือไม่? และ Windows Update จะอัปเดตเป็น 4.5 โดยอัตโนมัติด้วยค่าเริ่มต้นหรือไม่
Tuntable

2
นั่นดูเหมือนคำถามไม่ใช่ความคิดเห็น คำถามจะอยู่ที่ด้านบนของหน้าคลิกปุ่มถามคำถามเพื่อวางไว้ที่นั่น
Hans Passant

17

ในขณะที่คำตอบข้างต้นถูกต้องมันน่าสังเกตว่าMSBuild มีการเปลี่ยนแปลงและไม่ได้มาพร้อมกับกรอบการทำงานของ. net อีกต่อไปมันมาทั้งแบบสแตนด์อะโลนหรือสตูดิโอภาพ เป็นผลให้มันมีการเคลื่อนไหวไบนารี ... ดังนั้นคุณได้รับภายใต้ไดเรกทอรี 4.0.303619 เป็นจริงเก่า!

ฉันเพิ่งถูกจับโดยสิ่งนี้ - ฉันพบการเปลี่ยนเส้นทางการเชื่อมโยงอัตโนมัติทำงานเฉพาะเมื่อเรียกใช้จาก VisualStudio แต่ไม่เมื่อเรียกใช้ msbuild จากบรรทัดคำสั่ง ... เงื่อนงำคือการเปลี่ยนเส้นทางการผูกข้อมูลถูกเพิ่มใน VS 2013 (สำหรับการอ่านนั้น กรอบสุทธิ 4.5) หากคุณเปิดพรอมต์คำสั่ง vs คุณจะเห็นทันทีว่าได้รับจากไฟล์โปรแกรมตามที่กล่าวถึงในบทความอื่น ในขณะที่ฉันกำลังใช้แบตช์ไฟล์บนเส้นทางของฉันซึ่งเชื่อมโยงกับเวอร์ชันเก่า

หมายเลขรุ่น

ภายใต้กรอบ:

PS C:\Windows\Microsoft.NET\Framework\v4.0.30319> .\msbuild.exe -version
Microsoft (R) Build Engine version 4.0.30319.33440
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

4.0.30319.33440PS C:\Windows\Microsoft.NET\Framework\v4.0.30319>

ภายใต้ไฟล์โปรแกรม:

PS C:\Program Files (x86)\MSBuild\12.0\Bin> .\MSBuild.exe -version
Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

12.0.21005.1PS C:\Program Files (x86)\MSBuild\12.0\Bin>

5

หน้าเว็บไม่ถูกต้องและฉันได้ชี้ไปที่ MS และพวกเขาจะได้รับการเปลี่ยนแปลง

ตามที่ระบุไว้ข้างต้น. NET 4.5 เป็นการอัปเกรดแบบแทนที่ 4.0 ดังนั้นคุณจะมี Microsoft.NET \ Framework \ v4.0.30319 เท่านั้น

ToolVersion สำหรับ MSBuild ยังคงอยู่ที่ "4.0"


3

วิธีที่เป็นทางการในการตรวจสอบว่าคุณมีการติดตั้ง 4.5 (และไม่ใช่ 4.0) อยู่ในรีจิสตรีคีย์:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Relesae DWORD ต้องมากกว่า 378675 นี่คือเอกสารของ Microsoft สำหรับมัน

คำตอบอื่น ๆ ทั้งหมดของการตรวจสอบรุ่นรองหลังจาก 4.0.30319.xxxxx ดูเหมือนถูกต้องแม้ว่า (msbuild.exe -version หรือคุณสมบัติของ clr.dll) ฉันต้องการสิ่งที่บันทึกไว้ (ไม่ใช่บล็อก)


หมายเหตุ \ v4 \ ไม่ใช่ \ v4.0 \ ซึ่งแตกต่าง!
Tuntable
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.