错误MSB4185:“System.Globalization.CultureInfo”尚未启用执行

时间:2012-06-06 11:40:12

标签: android mono monodevelop xamarin.android currentuiculture

尝试使用Mono for Android构建MonoDevelop时出现此错误。根据调试它不在我的代码中,所以我离开了无能为力。有什么想法吗?

  

错误MSB4185:类型上的函数“CurrentUICulture”   “System.Globalization.CultureInfo”尚未启用执行。   (MSB4185)

3 个答案:

答案 0 :(得分:6)

我拥有MSBuild(和此代码)。这是一个源自microsoft.csharp.targets文件的错误,正如错误消息所说的那样。有一个属性函数:

$([System.Globalization.CultureInfo] :: CurrentUICulture.Name)

错误意味着它认为此功能不在MSBuild的“安全列表”中。这些是没有副作用的选定功能。 (如果要使用任何函数,则必须具有环境变量MSBUILDENABLEALLPROPERTYFUNCTIONS = 1)。

我真的不知道为什么会出现这种情况,除非你以某种方式使用4.5 microsoft.csharp.targets和4.0 microsoft.build.dll(在安全列表中没有它)。除了Monodevelop之外,我还没有收到有关此事的报告。

请原谅我的天真,但我假设Monodevelop正在使用Microsoft .NET Framework和Microsoft MSBuild,而不是重新实现它。

答案 1 :(得分:5)

我的工作解决方案是:

打开CMD并在其上运行此命令:setx MSBUILDENABLEALLPROPERTYFUNCTIONS 1

我认为可用的另一个解决方案是安装Mono Runtime并将其设置为工具的默认CLR运行时 - >选项 - > .NET运行时。

答案 2 :(得分:1)

从Windows 7计算机上卸载.NET Framework 4.5 RC后,此错误消失了。 当然,请确保在卸载4.5后有可用的.NET运行时。