.NET Framework 4.5 dizini nerede?


146

Windows 8, Visual Studio 2012'yi yükledim ancak içinde v4.5 dizini yok %WINDIR%\Microsoft.NET\Framework.

Yanlış bir şey mi yaptım yoksa .NET 4.5 diğerlerinden farklı mı?

Araçları yüklemediğim içinse, indirilecek bir dizi farklı araç var mı? Anlayabildiğim kadarıyla, .NET 4.5 uygulamalarını tamamlayabilirim.


1
@Gustavo, lütfen bu etiketi sorulara dönüştürmeyi bırakın. Ürün adı 2011 değil , 11 ve zaten mevcut bir etiket var.
Charles

1
.NET 4.5 yerinde bir yedektir. Bu blog gönderisine bakın .
Vijay

Yanıtlar:


153

.NET 4.5, 4.0'ın yerine geçer - derlemeleri 4.0 dizininde bulacaksınız.

Bu konuyla ilgili Rick Strahl ve Scott Hanselman'ın bloglarına bakın .

Ayrıca belirli sürümleri şurada bulabilirsiniz:

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

1
Teşekkürler, peki ya MSDN'nin bu sayfası. msdn.microsoft.com/en-us/library/bb397428 . 4.5.0.0 dizininden bahsediyor?
Nick Randell

@NickRandell - Meclisleri sordunuz. Bu makale SDK / araçlar ile ilgili.
Oded

@NickRandell - Ve bu sizin sisteminizde olmadığından, 4.0 dizinindeki derlemelerin sürümüne bakın ve gerçekten 4.5 olup olmadıklarını görün (bağlantılı bloglarda açıklandığı gibi).
Oded

Bu dizinlerde kesinlikle 4.5 var ama araçlar hakkında bir fikriniz var mı?
Nick Randell

6
Bilginize: Windows Server 2008 R2 cihazıma v4.5.2'yi yeni yükledim. Derlemeler aslında Jon Skeet'in işaret ettiği gibi C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319'dadır.
harsimranb

88

DÜZENLEME: Bu cevap 2013 ortasına kadar doğruydu, ancak büyük msbuild değişikliğinden bu yana daha yeni bir sürüme sahip olabilirsiniz . Daha fazla ayrıntı için Jonny Leeds'in cevabına bakın.

Altında sürüm C:\Windows\Microsoft.NET\Framework\v4.0.30319aslında olan .NET 4.5. Biraz tuhaf, ama kesinlikle mscorliborada içeriyor AsyncTaskMethodBuildervb zaman uyumsuz için kullanıldıkları.

.NET 4.5 etkin bir şekilde .NET 4'ün üzerine yazar .


Resmi sürümde bu hala doğru mu?
Earlz

@Kiquenet: Son sürümün kaldırıldığından şüpheleniyorum; ayrı bir nuget paketi olarak mevcuttur.
Jon Skeet

bu neredeyse doğru - ancak msbuild taşındı - aşağıdaki
yazıma

@JonnyLeeds: Teşekkürler - blog gönderisine bir referans ekledim.
Jon Skeet

28

.NET 4.5 olduğunu değil o, bir yan-yana versiyonu yerine 4.0 için meclisleri. .NET 3.0, 3.5 ve 3.5SP1 gibi 2.0 derlemelerinin yerini almıştır. Ve yenilerini ekledim. CLR sürümü hala 4.0.30319'dur. Yalnızca başvuru derlemelerini önemsersiniz, bunlar c: \ program dosyaları \ başvuru derlemelerinde bulunur.


3.0 ve 3.5'in sadece derlemeler eklediğini düşünmüştüm - mscorlib'i 4.5'in yaptığı gibi (diyelim ki) değiştirmiyorum. Yoksa bu 3.0 için doğru muydu ama 3.5 değil mi?
Jon Skeet

@Jon - hayır, aslında değiştirildi. [AssemblyVersion] değişmediği için bu biraz sefalete neden oldu. Eklenen WaitHandle.WaitOne (int) aşırı yüklemesi özellikle ünlüydü. NET 4'te bu sorunu önlemek için karşı önlemler vardı, referans derlemeleri artık GAC-ed derlemesinin bir kopyası değil. Özeldirler, IL içermezler.
Hans Passant

Birden çok sürümde test etmek için, sanal makinelere herhangi bir kolay alternatif var mı? Ve Windows Update otomatik olarak varsayılan olarak 4.5'e güncellenir mi?
Tuntable

2
Bu bir yoruma değil, bir soruya benziyor. Sorular sayfanın üst kısmına gider, oraya koymak için Soru Sor düğmesine tıklayın.
Hans Passant

17

Yukarıdaki cevaplar doğru olsa da, MSBuild'in değiştiğini ve artık .net çerçevesiyle birlikte gelmediğini belirtmek gerekir, ya tek başına ya da görsel stüdyo ile birlikte gelir. Sonuç olarak, ikili dosyalar taşındı ... yani 4.0.303619 dizini altına aldığınız aslında eski olanıdır!

Bu durumdan daha yeni yakalandım - otomatik bağlama yönlendirmelerinin yalnızca VisualStudio'dan çalışırken çalıştığını ancak msbuild'i komut satırından çalıştırırken çalışmadığını gördüm ... ipucu, bağlama yönlendirmelerinin VS 2013'te eklendiğiydi (bu okuma için. net çerçeve 4.5). Bir vs komut istemi açarsanız, diğer makalenin bahsettiği gibi şimdi bunu program dosyalarından aldığını göreceksiniz. Halbuki yolumda eski sürüme bağlı bir toplu iş dosyası kullanıyordum.

Sürüm numaraları

Çerçeve altında:

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>

Program dosyalarının altında:

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>

6

Web sayfası yanlış ve bunu MS'e işaret ettim ve değiştirecekler.

Yukarıda belirtildiği gibi .NET 4.5, 4.0'ın yerinde yükseltmesidir, bu nedenle yalnızca Microsoft.NET \ Framework \ v4.0.30319'a sahip olacaksınız.

MSBuild için ToolVersion "4.0" olarak kalır.


3

4.5'in yüklü olup olmadığını (4.0 değil) öğrenmenin resmi yolu kayıt defteri anahtarlarındadır:

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

Relesae DWORD İşte den büyük 378675 olması, Microsoft ise gerekiyor doc bunun için

4.0.30319.xxxxx'ten sonraki küçük sürümü kontrol etmenin diğer tüm yanıtları doğru görünüyor (msbuild.exe -version veya clr.dll'nin özellikleri), sadece belgelenmiş bir şeye ihtiyacım vardı (bir blog değil)


Not \ v4 \, farklı olan \ v4.0 \ değil!
Tuntable
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.