Tag: 嵌入式资源

为什么在具有不同名称的文件中为资源文件生成的类?

我有一个资源文件strings.resx,生成的资源类在strings1.designer.cs中。 为什么会这样? 问题具体是“1”。 该文件中的类名称应为“字符串”。 请注意,我确实尝试删除designer.cs并通过保存resx文件重新生成它,但这并没有改变任何东西。

为MVC生成Resx文件

我们使用resx文件进行全球化,以及我们的CS工作人员可以配置的事物的数据库查找(例如选项卡名称,可能因产品而异),因此在设计时不知道。 我创建了一个自定义工具,它读取resx文件并智能地将键/值对转储到关系数据库中(匹配值,因此我们没有重复项)。 这对我们的业务有很大帮助 – 我们不必发送每个resx进行翻译(并支付共享单词的重复翻译),我们的所有翻译都有一个’黄金标准’(在数据库中)。 我创建的工具还读取数据库,获取键/值对和每个值的翻译,并为每个resx文件(以及每种语言的文本文件的翻译)创建文本文件并自动运行resgen.exe,一个命令Visual Studio附带的-line工具,用于从生成的文本文件中编译resx文件。 我没有任何源代码控制集成,因此我们必须手动签出resx文件并在使用该工具时手动签入生成的文件,但这不是一个大问题。 我的问题是这个方法对我们的新MVC项目失败了:MVC项目要求resx文件是嵌入式资源,其访问修饰符为“public”。 因此,我们一直在手工解决这个问题,这引入了人为错误的可能性并增加了一些非常重要的工作量。 有没有办法让resgen.exe创建嵌入和公共的资源文件? 如果没有,是否有另一种方法可以创建resx文件? 更新,附加问题:我们使用此方法生成的resx文件也会发出警告: A custom tool ‘PublicResXFileCodeGenerator’ is associated with file ‘(resxname)’, but the output of the custom tool was not found in the project. You may try re-running the custom tool by right-clicking on the file in the Solution Explorer and choosing Run Custom […]

为什么在unit testing中找不到resx文化?

我在.NET 4.0项目中嵌入了字符串资源:Strings.resx和Strings.de.resx。 在生产代码中 ,将检索正确的本地化字符串,具体取决于Strings.Culture的值: Strings.Culture = new Culture(“de”); string deString = Strings.Welcome; // ‘Willkommen’ Strings.Culture = new Culture(“en”); string enString = Strings.Welcome; // ‘Welcome’ 但是在我的unit testing代码中 (使用MSTest),永远不会返回’Strings.de.resx’中的字符串 – 我只能从Strings.resx获取字符串,无论Strings.Culture或Threads.CurrentThread.CultureUICulture的值是什么。 有人可以帮忙吗?

无法使用GetManifestResourceStream()加载嵌入式资源

我正在使用/ linkres:compiler参数嵌入二进制文件,但是当我尝试使用以下命令加载它时: System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly(); string[] names = myAssembly.GetManifestResourceNames(); // it is really there by its name “shader.tkb” Stream myStream = myAssembly.GetManifestResourceStream( names[0] ); 这导致了一个 Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly ‘shader.tkb’ or one of its dependencies. The system cannot find the file specified. —> System.IO.FileNotFoundException: The system cannot find the […]

在C#中循环使用不同语言/文化的嵌入式资源

从这个问题的一个层面来看,存储所有(并循环)可用资源和相关文化的方式是什么,以允许用户选择特定文化? 进一步说明: 假设有三个资源文件: GUILanguage.resx GUILanguage.fr.resx GUILanguage.it.resx 我可以在每个名为LanguageName的字符串中有一个字符串。 我如何能够以编程方式循环遍历不同的LanguageName值以列出它们(例如列表框)? 编辑:WinForms项目,嵌入式资源。

Windows在设计时存储应用程序ResourceLoader

我已经开始为Windows 8.1创建Windowsapp store应用,现在我遇到了有关本地化的问题。 我想在设计时从.resw文件中显示字符串资源,但是每次尝试这样做都会失败,即使它在运行时也能正常工作。 当使用x:Uid属性时,我仍然需要提供Text属性(即对于TextBlock),我不喜欢写两次文本。 我还尝试在viewmodel上为字符串创建一个属性: public string Title { get { return ResourceLoader.GetForCurrentView(“Strings”).GetString(“MainView_Title”); } } 这在运行时工作,但在设计时它是空白的。 所以问题是,有没有办法在XAML设计器中显示来自.resw文件的资源? 更具体地说,ResourceManager类是否允许在设计时读取.resw文件? 谢谢你的帮助,卢卡斯

WPF – 检查资源是否存在,没有结构化exception处理

有没有办法检查程序集中是否存在资源而不必使用exception处理? 我正在加载来自几个程序集的图像,如果它们不存在,那么我正在处理IOException,这会导致相当多的开销。

如何将所有本地化卫星组合合并到EXE中?

我已经开始使用resx文件为我的项目添加多种语言(例如,MyText.resx,MyText.ru-RU.resx等)。 当我编译时,我最终得到这样的文件: MyApp.exe ru-RU \ MyApp.resources.dll es-ES \ MyApp.resources.dll 有没有简单的方法可以将所有内容编译到EXE中? 它只是一个小工具,我在一个zip文件中分发,很不错,它没有大量的相关文件! 我一直在阅读有关AssemblyLinker的内容,但我不确定它是否符合我的要求。 EXE需要表现得就像那些文件夹一样,并为用户语言加载正确的本地化。

如何从资源中复制文件?

我有一个嵌入式资源文件,例如: file.exe如何在目录中复制,例如: c:\ ? 点击按钮谢谢