添加培养的 resx 文件时发布到 arm64 不工作
Publish to arm64 not working when cultured resx file added
我创建了一个使用 resx 文件进行本地化的 .Net 6.0 项目。
在 Properties 文件夹中添加了一个 Resources.resx 文件(构建操作:EmbeddedResource CustomTool:ResxFileCodeGenerator)我能够将其发布到 arm-64。
这是 pubxml 文件:
<Project>
<PropertyGroup>
<Configuration>Debug</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
<SelfContained>true</SelfContained>
<PublishSingleFile>false</PublishSingleFile>
<PublishTrimmed>false</PublishTrimmed>
</PropertyGroup>
</Project>
然后我将 Resources.nl.resx 文件添加到属性文件夹中(构建操作:EmbeddedResource)
当我现在尝试发布时,它没有说 'arm64' 不是选项 'platform' 的有效设置
这些是输出的最后几行:
2>C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\al.exe /culture:nl /out:obj\Debug\net6.0\linux-arm64\nl\LocalizationResx.resources.dll /platform:arm64 /template:obj\Debug\net6.0\linux-arm64\LocalizationResx.dll /embed:obj\Debug\net6.0\linux-arm64\LocalizationResx.Properties.Resources.nl.resources
2>'arm64' is not a valid setting for option 'platform'
如果我将 linux-arm 设置为目标 运行time,则发布有效。
这是 visual studio 中的错误吗? (2022 v17.1.0)
有没有办法让发布成功?
对于需要在 arm64 上 运行 的 .net 6.0 项目,是否有更好的本地化方法?
对我来说解决问题的方法是打开可执行项目的 csproj 文件并将 <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
添加到包含 targetFramework 的 PropertyGroup。
虚拟项目的 csProj 文件现在如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.nl.resx">
<Generator></Generator>
</EmbeddedResource>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>
正在向 linux-arm64 发布
我创建了一个使用 resx 文件进行本地化的 .Net 6.0 项目。 在 Properties 文件夹中添加了一个 Resources.resx 文件(构建操作:EmbeddedResource CustomTool:ResxFileCodeGenerator)我能够将其发布到 arm-64。 这是 pubxml 文件:
<Project>
<PropertyGroup>
<Configuration>Debug</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
<SelfContained>true</SelfContained>
<PublishSingleFile>false</PublishSingleFile>
<PublishTrimmed>false</PublishTrimmed>
</PropertyGroup>
</Project>
然后我将 Resources.nl.resx 文件添加到属性文件夹中(构建操作:EmbeddedResource) 当我现在尝试发布时,它没有说 'arm64' 不是选项 'platform' 的有效设置 这些是输出的最后几行:
2>C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\al.exe /culture:nl /out:obj\Debug\net6.0\linux-arm64\nl\LocalizationResx.resources.dll /platform:arm64 /template:obj\Debug\net6.0\linux-arm64\LocalizationResx.dll /embed:obj\Debug\net6.0\linux-arm64\LocalizationResx.Properties.Resources.nl.resources
2>'arm64' is not a valid setting for option 'platform'
如果我将 linux-arm 设置为目标 运行time,则发布有效。
这是 visual studio 中的错误吗? (2022 v17.1.0)
有没有办法让发布成功?
对于需要在 arm64 上 运行 的 .net 6.0 项目,是否有更好的本地化方法?
对我来说解决问题的方法是打开可执行项目的 csproj 文件并将 <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
添加到包含 targetFramework 的 PropertyGroup。
虚拟项目的 csProj 文件现在如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.nl.resx">
<Generator></Generator>
</EmbeddedResource>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>
正在向 linux-arm64 发布