我现在用预制5 工作了几天。我目前正在尝试将我们的VS2015解决方案(主要是C ++本机和CLI项目)移植到预制5解决方案。到目前为止,我没有遇到任何问题,但现在我无法为我们将程序集本地化的所有语言构建资源库。例如,如果我们有 fr 和 es (对于French和Spanich),我们应该有一个这样的程序集拆分:
foo.dll
(默认,英文),foo.resources.dll
用于其他语言(当然,在不同的文件夹中分开)。 但是我无法正确编写lua脚本(阅读:我不知道如何)。
有人知道如何使用premake5生成本地化(AKA卫星)程序集吗?
感谢您的帮助!
编辑1
我将此添加到我的lua脚本中:
files({"/**.resx"})
它将.resx
个文件添加到.vcxproj
文件中,而不是像这样包含:
<EmbeddedResource Include="bar.resx"/>
它们包括在内:
<None Include="bar.resx"/>
发生了什么?
编辑2
然后我补充道:
filter "files:**.resx"
buildaction "Embed"
但它仍然是一样的。我发现in premake 5 doc只在C#中支持buildaction
(我的代码在C ++ / CLI中)。如果这是真的(似乎是)有一种方法可以更深入地使用我的脚本将XML条目直接添加到.vcxproj
?
答案 0 :(得分:1)
嗯......经过多次尝试,我找到了一条路。我刚刚为 EmbeddedResource 添加了一个新的(文件)类别,如下所示:
premake.vstudio.vc2010.categories.EmbeddedResource = {
name = "EmbeddedResource",
extensions = {".resx"},
priority = 50, -- arbitrary number, I saw priorities are 0, 1, 2...
emitFiles = function(prj, group)
premake.vstudio.vc2010.emitFiles(
prj,
group,
"EmbeddedResource",
{premake.vstudio.vc2010.generatedFile} -- cannot explain this...
)
end,
emitFilter = function(prj, group)
premake.vstudio.vc2010.filterGroup(prj, group, "EmbeddedResource")
end
}
希望它可以帮助...