使用Desktop Bridge打包时,如何阻止卫星程序集被剥离?
阻止Desktop Bridge打包时剥离卫星程序集的方法
嘿,我刚好碰到过一模一样的问题,给你几个亲测有效的解决办法:
1. 修改项目文件(最直接的方案)
右键你的项目,选择「编辑项目文件」(就是那个.csproj或者.vbproj文件),在<PropertyGroup>节点里添加或修改<SatelliteResourceLanguages>配置:
<SatelliteResourceLanguages>none</SatelliteResourceLanguages>
设置成none就表示打包工具不会过滤任何语言的卫星程序集,bin文件夹里所有的VidCoder.resources.dll都会被完整保留。要是你只想保留特定几种语言,也可以直接列出来,比如:
<SatelliteResourceLanguages>bs,cs,de,es,eu,zh</SatelliteResourceLanguages>
2. 调整Package.appxmanifest的语言配置
打开Package.appxmanifest文件,切换到「打包」选项卡,找到「选择要包含的语言」按钮。点击进去后,别只勾选中文,把你需要的所有语言都勾选上,或者直接选「全部」。这样Visual Studio打包时就会自动把对应语言的卫星dll都包含进安装包了。
3. 手动用MakeAppx.exe打包(适合命令行场景)
如果你习惯用命令行打包,那在用MakeAppx.exe的时候,要么别加/l参数指定单一语言,要么明确把所有需要的语言列出来:
MakeAppx pack /d "你的项目bin目录路径" /p "输出的appx文件路径" /l bs,cs,de,es,eu,zh
这样就能确保所有指定语言的卫星程序集都被打包进去。
额外注意点
- 检查Visual Studio的发布配置,看看是不是不小心只勾选了中文作为目标语言,改成多语言或者全部语言就行。
- 要是你有自定义的MSBuild脚本或者打包任务,记得排查一下有没有过滤卫星程序集的逻辑,别让这些脚本把其他语言的dll误删了。
内容的提问来源于stack exchange,提问作者RandomEngy
相关产品推荐
相关产品推荐

