2012-06-06 19 views
8

MonoDevelop ile Android için Mono oluşturmaya çalışırken bu hatayı alıyorum. Hata ayıklama göre benim kodumda yer almaz bu yüzden clueless. Herhangi bir fikir?Hata MSB4185: "System.Globalization.CultureInfo" yürütme için etkinleştirilmemiş

Hata MSB4185: tip işlev "CurrentUICulture" "System.Globalization.cultureınfo" yürütülmesi için etkin değil. (MSB4185)

+0

Bu problemi de yaşıyorum. Windows 8'i herhangi bir şansla mı kullanıyorsunuz? Onunla ilgisi olup olmadığını merak ediyorum. –

+0

Bunu Windows 8 RP'de de görüyorum. Bunu görün: https: //bugzilla.xamarin.com/show_bug.cgi? Id = 5597 –

+0

.NET Framework 4.5 yüklü olmasıyla ilgili olabilir mi? – Dominique

cevap

1

Windows 7 makinemden .NET Framework 4.5 RC'yi kaldırdıktan sonra bu hata ortadan kalktı. Elbette, 4.5'i kaldırdıktan sonra geçerli .NET çalışma zamanı olduğundan emin olun.

6

MSBuild (ve bu kod) sahibiyim. Muhtemelen hata mesajı gibi, microsoft.csharp.targets dosyasında çıkan bir hatadır. Bir özellik işlevi vardır In:

$ ([System.Globalization.cultureınfo] :: CurrentUICulture.Name)

hangi hata demek oluyor bu işlev MsBuild en "güvenli liste" olmadığını düşünüyor olmasıdır . Bunlar yan etkisi olmayan seçilmiş fonksiyonlardır. (Herhangi bir işlevi kullanmak istiyorsanız, bir MSBUILDENABLEALLPROPERTYFUNCTIONS = 1 ortam değişkenine sahip olmanız gerekir).

Neden 4.5 microsoft.csharp.targets 4.0 microsoft.build.dll (güvenli listesinde yoktu) ile kullanmadığınız sürece bu neden görüneceğini gerçekten bilmiyorum. Monodevelop ile bağlantılı olarak bunun dışında rapor almadım.

Nişanlımdan özür dilerim, ancak Monodevelop'ın Microsoft .NET Framework'ü Microsoft MSBuild ile birlikte kullandığını ve bunun bir yeniden kullanımını olmadığını varsayıyorum.

Dan

+0

Kaldırma 4.5, "fix" olur çünkü microsoft.csharp.targets, 4.0 sürümüne geri dönebilir. Tabii, artık 4.5'iniz yok. – dan

+0

Ayrıca, microsoft.csharp.targets ve microsoft.build.dll dosyasının msbuild.exe ile bir C# projesi oluşturarak eşzamanlı olduğunu doğrulayabilirsiniz. Bu, Monodevelop'un elbette bazı özel konumlardan farklı kopyalar yüklemediğini varsayar. – dan

+2

Ugh, problemi çözdüm. Görünüşe göre eski OM (microsoft.build.engine.dll) yerine 4.0+ OM (microsoft.build.dll) yerine kullanıyorsunuz. MonoDevelop gibi birisinin onu kullanması durumunda, eski OM'yi uyumak için reshipped ettik. msbuild.exe 4.0+ ve VS2010 + tabiki yeni OM'yi kullanır, bu yüzden eski olan nispeten test edilmemiştir. Ve 4.0 veya 4.5 projesinde eski OM'yi 4.5 .NET framework'ü yüklü olarak kullanırsanız VE BuildingInVisualStudio = true (Monodevelop setlerini tahmin ediyorum) bu hatayı alırsınız. – dan

5

benim için çalışıyor çözüm şudur:

bir CMD Açık ve üzerinde bu komutu çalıştırın: Ne var olduğunu düşündükleri diğer çözüm Mono Runtime yüklüyor setx MSBUILDENABLEALLPROPERTYFUNCTIONS 1

ve olarak ayarlamak senin Araçlar menüsünden CLR çalışma zamanı -> Seçenekler -> .NET Runtimes.

+0

CMD seçeneği benim için mükemmel çalıştı –