C# MonoDevelop/MonoDroid项目/生成错误:不是有效的base-64字符串

C# MonoDevelop/MonoDroid项目/生成错误:不是有效的base-64字符串,c#,monodevelop,xamarin.android,C#,Monodevelop,Xamarin.android,我下载了MonoDroid开发环境。如果我创建一个新的“Mono for Android应用程序”项目,或者如果我在MonoDevelop中导入一个示例项目,我会立即在消息日志中弹出以下两条错误消息(并且无法构建/运行该项目): 使用TargetRuntime运行时,ProcessStartInfo pinfo。看起来该进程返回的StandardError不是正确的Base64字符串。如何访问此过程的StandardError输出?我来自Java世界,对Mono/.NET还很陌生。我现在正在调查

我下载了MonoDroid开发环境。如果我创建一个新的“Mono for Android应用程序”项目,或者如果我在MonoDevelop中导入一个示例项目,我会立即在消息日志中弹出以下两条错误消息(并且无法构建/运行该项目):


使用TargetRuntime运行时,ProcessStartInfo pinfo。看起来该进程返回的StandardError不是正确的Base64字符串。如何访问此过程的StandardError输出?我来自Java世界,对Mono/.NET还很陌生。

我现在正在调查这个bug。只是想确认一下,您是说它在英文版的Windows Vista上运行良好,但是如果您使用的是德文版的Windows 7,则会引发异常?我将使用相同的软件版本在英文版Windows 7上进行测试,看看我是否可以触发相同的问题。

为什么您认为p.StandardError.ReadLine()返回base64字符串?例程希望从base64解码它,根据。所以很明显它需要Base64字符串?Mono安装在Win7上是德语的,但Win7本身是英语的。可能是Mono安装程序从系统或浏览器设置中选择了该语言,我没有机会选择该语言。我不确定问题是否与语言有关。我想在我的机器设置中有什么东西在Mono启动时会导致错误。我的方法是访问此进程输出,可能包含某种错误消息。我尝试使用Win7德语将其安装到另一台机器上。Monodevel也决定用德语。我真的不知道如何在这里设置语言,没有人问我(?),我没有收到报告的错误。但是,当我想要运行模板或示例项目时,我会收到另一条生成错误消息:“没有为项目[…]设置OutputPath属性。但是在设置中,在项目设置中为“Ausgabepfad”设置了一个路径。也许,这都是关于德国版MonoDevelop的?
Error - 16:49:38 - Error running resgen
System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters. 
   at System.Convert.FromBase64String(String s)
   at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectService.GetProjectBuilder(TargetRuntime runtime, String toolsVersion, String file)
   at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectHandler.GetProjectBuilder()
   at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectHandler.RunTarget(IProgressMonitor monitor, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.SolutionItem.OnRunTarget(IProgressMonitor monitor, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.SolutionEntityItem.OnRunTarget(IProgressMonitor monitor, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.DefaultProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.ProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.ProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.ProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.ProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.ProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.ProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.ProjectServiceExtension.RunTarget(IProgressMonitor monitor, IBuildTarget item, String target, ConfigurationSelector configuration)
   at MonoDevelop.Projects.SolutionItem.RunTarget(IProgressMonitor monitor, String target, ConfigurationSelector configuration)
   at MonoDevelop.MonoDroid.MonoDroidProject.<RunResgen>b__13(Object )

Error - 16:49:38 - Parser database for project 'MonoA3 could not be loaded
System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters. 
   at System.Convert.FromBase64String(String s)
   at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectService.GetProjectBuilder(TargetRuntime runtime, String toolsVersion, String file)
   at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectHandler.GetProjectBuilder()
   at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectHandler.<MonoDevelop.Projects.Extensions.IAssemblyReferenceHandler.GetAssemblyReferences>d__2.MoveNext()
   at MonoDevelop.Projects.DotNetProject.<GetReferencedAssemblies>d__f.MoveNext()
   at MonoDevelop.Projects.Dom.Serialization.ProjectCodeCompletionDatabase.UpdateFromProject()
   at MonoDevelop.Projects.Dom.Serialization.ProjectCodeCompletionDatabase..ctor(Project project, ParserDatabase pdb)
   at MonoDevelop.Projects.Dom.Serialization.ParserDatabase.LoadProjectDom(Project project)
   at MonoDevelop.Projects.Dom.Parser.ProjectDomService.Load(Project project)
Process p = null;
try {
    p = runtime.ExecuteAssembly (pinfo);
    p.StandardInput.WriteLine (Process.GetCurrentProcess ().Id.ToString ());
    string sref = p.StandardError.ReadLine ();
    byte[] data = Convert.FromBase64String (sref);
    MemoryStream ms = new MemoryStream (data);
    BinaryFormatter bf = new BinaryFormatter ();
    builder = new RemoteBuildEngine (p, (IBuildEngine) bf.Deserialize (ms));
} catch {
    if (p != null) {
        try {
            p.Kill ();
        } catch { }
    }
    throw;
}