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

use*_*648 8 mono android monodevelop currentuiculture xamarin.android

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

错误MSB4185:尚未启用"System.Globalization.CultureInfo"类型上的"CurrentUICulture"函数.(MSB4185)

dan*_*dan 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,而不是重新实现.

  • 呃,我弄明白了这个问题.显然你使用旧的OM(来自microsoft.build.engine.dll)而不是4.0+ OM(来自microsoft.build.dll).为了以防任何人(如MonoDevelop显然)使用它,我们重新安装了旧的OM for compat.msbuild.exe 4.0+和VS2010 +当然使用新的OM,所以旧的相对未经测试.如果您在4.0或4.5项目中使用旧的OM,安装了4.5 .NET框架,并且属性BuildingInVisualStudio = true(我猜测Monodevelop设置),则会出现此错误. (2认同)

Ebr*_*owi 5

我的工作解决方案是这样的:

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

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


Dom*_*que 1

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