8

当尝试使用 Mono for Android 构建 MonoDevelop 时,我收到此错误。根据调试它不在我的代码中,所以我一无所知。任何想法?

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

4

3 回答 3

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 MSBuild 的 Microsoft .NET Framework,而不是重新实现它。

于 2012-06-18T16:26:13.080 回答
5

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

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

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

于 2012-08-22T19:39:25.427 回答
1

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

于 2012-06-15T17:13:58.973 回答