首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文件编译到库中并对其进行访问,但不能将其作为资源

将文件编译到库中并对其进行访问,但不能将其作为资源
EN

Stack Overflow用户
提问于 2021-02-25 16:34:52
回答 1查看 18关注 0票数 0

我们的软件确实有一种非常古老的,对于今天的可能性来说,可能是一种非常奇怪的可翻译方式。原因可能是,可翻译的字符串来自非常不同的地方,如VB6 dlls、.NET dlls、Access表单/报表、元数据……以此类推。嗯,事实就是这样。

一般来说,有一个工具可以从不同的来源提取所有可翻译的字符串,并将它们转换为可以用专业翻译工具翻译的格式。在此之后,只要有人想要翻译,翻译就会转换回软件可以使用的格式。

对于.NET动态链接库,该工具从dll中提取所有资源,并在翻译后将它们放入单独的文本文件中,如果软件需要翻译,它将从这些文本文件中读取翻译后的资源。

现在来谈谈我的问题..。我想把一个xml文件作为资源放到一个dlls中,这个xml文件不应该被提取出来进行翻译,也不应该从包含翻译后的字符串的文本文件中读取。

但是现在,确实发生了这种情况,提取器提取该xml文件的内容进行翻译,翻译后的软件在翻译后的文本文件中查找该xml文件。

当然,我可以尝试通过更改解压程序来跳过文件资源,并修复软件中决定在哪里查找资源的部分来解决这个问题。但我们软件的这一部分并不完全是我的专长。

因此,我想您可能知道一种方法,可以将xml文件放入dll中,并在不将其作为资源的情况下访问它。

资源文件的“构建操作”设置有什么用处?现在,我的资源文件的“构建操作”是" resource“。其他所有“构建操作”设置(如"Embedded Resource“、"Content”、"AdditionalFiles“、"ApplicationDefinition”等)做什么?在这个方向上做一些研究会有帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-25 19:02:16

在进行了大量的搜索和尝试之后,我删除了文件资源,并将带有"EmbeddedResource“的xml文件作为”构建操作“添加到项目中。

之后,我可以使用如下代码获取xml文件的内容:

代码语言:javascript
运行
复制
string xmlFile;

//to find out the full name of the embedded resource use the following line
//string[] resourceNames = System.Reflection.Assembly.GetCallingAssembly().GetManifestResourceNames();

using (System.IO.TextReader reader = new System.IO.StreamReader(System.Reflection.Assembly.GetCallingAssembly().GetManifestResourceStream(), System.Text.Encoding.UTF8))
{
    xmlFile = reader.ReadToEnd();
    reader.Close();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66364972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档