更新到.NETStandard 2.0和本地化

问题描述 投票:0回答:1

我跟随these instructions将我的Xamarin.Forms项目升级到.NETStandard 2.0。现在,我在。resx文件中添加了一个新条目,并出现编译错误:

错误CS0117:'AppResources'不包含'MyKey'的定义]

我认为AppResources.Designer.cs文件不再更新。以下内容似乎是错误的:

  • 根据说明,我应该删除AssemblyInfo.cs,我仅对PCL而不对单个项目(iOS,Droid)执行了此操作。另一方面,您应该根据NeutralResourcesLanguagedocs添加到AssemblyInfo.cs。所以我应该有一个AssemblyInfo.cs吗?
  • [如果我打开AppResources.resx
  • ,我将无法更改访问修饰符(在操作。csproj后可以工作)
  • 我在PCL的新。csproj

  • 中只有此代码
<ItemGroup>
    <EmbeddedResource Update="Common\Localization\AppResources.resx">
        <Generator>ResXFileCodeGenerator </Generator>
    </EmbeddedResource>
</ItemGroup>
  • 在详细的构建日志中,我发现了这一点,但我不知道该怎么办
  • 1>由于错误,跳过了任务“ CreateCSharpManifestResourceName”条件; ('%(EmbeddedResource.ManifestResourceName)'==''和'%(EmbeddedResource.WithCulture)'=='true'并且'%(EmbeddedResource.Type)'=='Non-Resx')被评估为(''==''和'false'=='true'和'Resx'=='Non-Resx')。 1>任务由于条件错误,跳过了“ CreateCSharpManifestResourceName”;('%(EmbeddedResource.ManifestResourceName)'==''和'%(EmbeddedResource.WithCulture)'=='true'并且'%(EmbeddedResource.Type)'=='Non-Resx')被评估为(''==''和'true'=='true'和'Resx'=='Non-Resx')。 1>任务由于条件错误,跳过了“ CreateCSharpManifestResourceName”;('%(EmbeddedResource.ManifestResourceName)'==''和'%(EmbeddedResource.WithCulture)'=='true'并且'%(EmbeddedResource.Type)'=='Non-Resx')被评估为(''==''和'false'=='true'和'Non-Resx'=='Non-Resx')。

    我最好的选择是从PCL项目中手动编辑。csproj

    。在我以前的。csproj中,我有这个:
    <Compile Include="Common\Localization\AppResources.Designer.cs">
        <AutoGen>True</AutoGen>
        <DesignTime>True</DesignTime>
        <DependentUpon>AppResources.resx</DependentUpon>
    </Compile>
    
    <ItemGroup>
        <EmbeddedResource Include="Common\Localization\AppResources.de.resx">
            <SubType>Designer</SubType>
        </EmbeddedResource>
        <EmbeddedResource Include="Common\Localization\AppResources.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>AppResources.Designer.cs</LastGenOutput>
            <SubType>Designer</SubType>
        </EmbeddedResource>
    </ItemGroup>
    

    但是我认为我不能一对一地采用它。我尝试play with it,但没有成功:

    <ItemGroup>
        <Compile Update="Common\Localization\AppResources.Designer.cs">
            <AutoGen>True</AutoGen>
            <DesignTime>True</DesignTime>
            <DependentUpon>AppResources.resx</DependentUpon>
        </Compile>
    </ItemGroup>
    <ItemGroup>
        <EmbeddedResource Update="Common\Localization\AppResources.de.resx">
            <SubType>Designer</SubType>
        </EmbeddedResource>
        <EmbeddedResource Update="Common\Localization\AppResources.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>AppResources.Designer.cs</LastGenOutput>
            <SubType>Designer</SubType>
        </EmbeddedResource>
    </ItemGroup>
    

    如何重新启用翻译?

    我按照这些说明将Xamarin.Forms项目升级到.NETStandard 2.0。现在,我向.resx文件中添加了一个新条目,并得到了编译错误:错误CS0117:'AppResources'不...

    xamarin xamarin.forms visual-studio-2017 localization .net-standard-2.0
    1个回答
    0
    投票

    似乎唯一需要做的就是将AppResources.resx自定义工具

    © www.soinside.com 2019 - 2024. All rights reserved.