gpt4 book ai didi

visual-studio-2010 - 当名称以 "No.xxx"结尾时,Visual Studio 2010 中缺少嵌入式资源

转载 作者:行者123 更新时间:2023-12-04 18:52:52 26 4
gpt4 key购买 nike

我在 Visual Studio 2010 中遇到了一个奇怪的行为。

当使用嵌入式资源(添加到我的 C# 项目并且其 Build Action 属性设置为 Embedded Resource 的文件)时,这些文件作为二进制数据包含在输出程序集中。列出资源很简单:

class Program
{
static void Main(string[] args)
{
string[] names = typeof (Program).Assembly.GetManifestResourceNames ();

foreach (var name in names)
{
System.Console.Out.WriteLine (name);
}
}
}

但是,如果嵌入的资源文件名以 No.xxx 结尾(扩展名无关),该文件不会出现在列表中。我不知道为什么 Visual Studio 2010 不包含这样的文件。我错过了什么?

注意:如果我将解决方案资源管理器中的嵌入资源文件重命名为其他内容,那么一切都会按预期进行。

最佳答案

Microsoft Connect 团队的 Dan 终于提供了一个 valid explanation对于这种行为:

Hello, thanks for the report, this is actually working normally. The reason is that any resx files whose names match the pattern .VALIDCULTURE.resx are assumed to be specific to that culture. (This is how it has worked since VS2002, for better or worse) In your case "no" is a valid culture (Norwegian, I guess) so the build process builds it into a satellite assembly. Here's what I got when I tried this. Note the "no" subfolder. If in your app you change your current culture to Norwegian, the resource load will load this set of resources.



所以问题与 No这个词无关本身,而是因为它是一个有效的、由两个字母组成的文化名称(在我的例子中是挪威语)。我查了一下,确实在 bin\Debug里有一个子文件夹。命名 No ,包含名为 Project.resources.dll 的附属程序集在里面。

将资源重命名为以 .EN.xxx 结尾或 .FR.xxx当然,确实表现出相同的行为。

关于visual-studio-2010 - 当名称以 "No.xxx"结尾时,Visual Studio 2010 中缺少嵌入式资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3456014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com