尝试运行 xamarin UI 测试时,我的计算机出现问题。这是一个 xamarin 表单项目,我正在 Android 设备上构建和测试。我正在使用 Visual Studio Community 2017 和 Windows。
我在我自己的项目和微软提供的示例项目中都尝试过:https ://developer.xamarin.com/samples/test-cloud/Quickstarts/CreditCardValidator.Droid/
就我所见,相同的代码可在其他几台计算机上使用相同的设置。
我得到的错误是这样的:
System.ArgumentException : 1 is not a supported code page.
Parameter name: codepage
这是堆栈跟踪的结尾:
at System.Text.Encoding.GetEncoding(Int32 codepage)
at ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries()
at ICSharpCode.SharpZipLib.Zip.ZipFile..ctor(FileStream file)
at Xamarin.UITest.Shared.Android.ApkFile.GetFileBytes(String fileName)
调试时我可以到达的最后一行是:
app = ConfigureApp.Android.Debug().ApkFile(appPath).StartApp(mode);
我已经检查过它是 apk 的正确路径,并且“模式”是 AppDataMode.Clear。
我尝试更改我能找到的任何选项,例如项目属性或 Visual Studio 和 Windows 设置。一切都是最新的,我尝试了清理/构建/重新启动视觉工作室的每一种组合。我看过HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
并没有发现任何与工作机器不同的东西。在搜索时,我没有找到任何让我更接近解决方案的东西。这个错误似乎并不常见。OEMCP(原始设备制造商代码页)在注册表中设置为 437,但在代码中记录 TextInfo.OEMCodePage 会给我“1”,这就是错误的描述。也许这有帮助。
Thread.CurrentThread.CurrentCulture.TextInfo.OEMCodePage == 1
对我来说,下一步是重新安装 Visual Studio 或 Windows。