Xamarin 表单 resx 本地化总是 return 默认语言

Xamarin forms resx localization always return default language

我的 Xamarin 格式 resx 本地化在 visual studio 更新后总是 return 默认语言。

当前版本是 visual studio 16.9.5,我试过 16.10 预览版,但它有同样的错误。

我的AppResources.resx文件设置

Build action: Embedded Resource
Custom tool: PublicResXFileCodeGenerator

和其他AppResources.ko.resx和AppResources.ja.resx文件设置

Build action: Embedded Resource

下面的解决方法已经应用,但对我不起作用。 (https://github.com/xamarin/xamarin-android/issues/4664#issuecomment-632986668)

请帮助我..我花了将近两天的时间来研究这个错误..

-------------------------------- 添加-------- ----------------------------

我的主要项目名称是 'Core'。

我的 resx 文件位于 'Core/Properties/'(例如] Core/Properties/AppResources.resx')。

默认语言是 'en',我在与 AppResources.resx.

相同的路径中还有 'AppResources.ko.resx' 和 'AppResources.ja.resx'

我已经解决了这个问题。

问题来自最新的 visual studio 版本和以前的解决方法 (https://github.com/xamarin/xamarin-android/issues/4664#issuecomment-632986668)

之前的解决方法建议修改 Android 项目 .csproj 文件如下

 <Target Name="_ResolveSatellitePaths"
DependsOnTargets="_ResolveAssemblies">
<ResolveAssemblyReference
    AllowedAssemblyExtensions="$(AllowedReferenceAssemblyFileExtensions)"
    AssemblyFiles="@(ResolvedUserAssemblies)"
    AutoUnify="$(AutoUnifyAssemblyReferences)"
    FindDependencies="True"
    FindRelatedFiles="False"
    FindSatellites="True"
    SearchPaths="$(AssemblySearchPaths)"
    TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
    TargetFrameworkMonikerDisplayName="$(TargetFrameworkMonikerDisplayName)"
    TargetFrameworkDirectories="$(TargetFrameworkDirectory)">
  <Output TaskParameter="SatelliteFiles" ItemName="_AndroidResolvedSatellitePaths"/>
</ResolveAssemblyReference>

但是,在更新 visual studio 之后,此解决方法造成了问题。

我删除了这段代码,一切正常!