将 premake 与多本地化一起使用
Using premake with multi localizations
我现在使用 premake 5 几天了。我目前正在尝试将我们的 VS2015 解决方案(主要是 C++ 本机和 CLI 项目)移植到 premake 5 解决方案。到目前为止我没有遇到任何问题,但现在我无法为我们将程序集本地化到的所有语言构建资源库。例如,如果我们有 fr 和 es(对于法语和西班牙语),我们应该有这样的程序集拆分:
foo.dll
(默认,英文),
- 卫星
foo.resources.dll
用于其他语言(当然分开在不同的文件夹中)。
但我无法(阅读:我不知道如何)正确编写 lua 脚本。
有人知道如何使用 premake5 生成本地化(也称为卫星)程序集吗?
感谢您的帮助!
编辑 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
?
嗯...经过多次尝试,我找到了一个方法。我刚刚为 EmbeddedResource 添加了一个新的(文件)category,如下所示:
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
}
希望能帮到你...
我现在使用 premake 5 几天了。我目前正在尝试将我们的 VS2015 解决方案(主要是 C++ 本机和 CLI 项目)移植到 premake 5 解决方案。到目前为止我没有遇到任何问题,但现在我无法为我们将程序集本地化到的所有语言构建资源库。例如,如果我们有 fr 和 es(对于法语和西班牙语),我们应该有这样的程序集拆分:
foo.dll
(默认,英文),- 卫星
foo.resources.dll
用于其他语言(当然分开在不同的文件夹中)。
但我无法(阅读:我不知道如何)正确编写 lua 脚本。
有人知道如何使用 premake5 生成本地化(也称为卫星)程序集吗?
感谢您的帮助!
编辑 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
?
嗯...经过多次尝试,我找到了一个方法。我刚刚为 EmbeddedResource 添加了一个新的(文件)category,如下所示:
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
}
希望能帮到你...