Tom*_*rek 16 .net c# localization build .net-assembly
在我的一个项目中,我使用了一个名为Humanizer的很棒的库.这个库有很多语言版本(我算38).
当我构建我的项目时,然后我看到所有这些文件夹,如"af","ar","bg","bn-BD",...,"zh-Hant",其中的程序集包含此库的本地化资源.
我的问题是我的项目仅限英语,我没有兴趣在我的构建输出中拥有所有这些本地化程序集.是否有一些从构建中省略它们的好方法?
我正在寻找这个问题的一般解决方案.它发生在除Humanizer之外的库,如DevExpress Controls等,它们不是开源的.
Sim*_*ier 26
你可以做的是添加一个目标(在这里,我把它命名为'RemoveSatelliteAssemblies')到msbuild .csproj项目文件,例如,在最后:
<Project...>
....
<Target Name="RemoveSatelliteAssemblies" AfterTargets="ResolveAssemblyReferences">
<ItemGroup>
<ReferenceCopyLocalPaths Remove="@(ReferenceSatellitePaths)" />
</ItemGroup>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
此目标将在标准ResolveAssemblyReferences目标之后运行(Microsoft.Common[something].targets在C:\Program Files (x86)\MSBuild目录或目录中的某个文件中定义C:\Windows\Microsoft.Net- 它取决于您的Visual Studio/MsBuild设置和版本),它将从标记的引用路径列表中删除所有参考卫星路径作为copy local(两个ItemGroup名称也在标准.targets文件中声明).
tha*_*alm 17
使用最新的 msbuild,您可以简单地将其放入 .csproj 文件中:
<PropertyGroup>
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |