2010-08-11 4 views
5

ich auf ein seltsames Verhalten in Visual Studio gekommen bin 2010Eingebettete Ressource in Visual Studio 2010 fehlt, wenn der Name mit „No.xxx“ endet

Wenn eingebettete Ressourcen (Dateien, die zu meinem C# Projekt hinzugefügt werden und für die die Build Aktion -Eigenschaft auf Embedded Resource festgelegt ist), die Dateien sind in der Ausgabebaugruppe als Binärdaten enthalten. die Ressourcen Listing ist einfach:

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

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

Wenn jedoch die eingebettete Ressource Dateinamen mit No.xxx enden (die Erweiterung ist irrelevant), wird die Datei zeigt, nicht in der Liste nach oben. Ich kann keinen Grund herausfinden, warum Visual Studio 2010 keine solche Datei enthält. Was habe ich verpasst?

Hinweis: Wenn ich die eingebettete Ressourcendatei im Solution Explorer zu etwas anderem umbenennen, funktioniert alles wie erwartet.

+0

Ich habe dies schließlich als Bug auf Microsoft Connect veröffentlicht (17. August 2010). –

Antwort

6

Dan aus dem Microsoft Connect Team hat endlich ein valid explanation für dieses Verhalten vorgesehen:

Hallo, danke für den Bericht, dies in der Regel tatsächlich funktioniert. Der Grund dafür ist, dass alle Resx-Dateien, deren Namen mit dem Muster .VALIDCULTURE.resx übereinstimmen, als spezifisch für diese Kultur gelten. (Dies ist, wie es seit dem VS2002 gearbeitet hat, für besser oder schlechter) In Ihrem Fall "no" ist eine gültige Kultur (Norwegian, ich denke), so der Build-Prozess baut sie in eine Satellitenassembly. Folgendes habe ich, als ich das versuchte. Notieren Sie sich den Unterordner "no". Wenn Sie in Ihrer App Ihre aktuelle Kultur in Norwegisch ändern, lädt die Ressourcenladung diese Ressourcenmenge.

Also das Problem hat nichts mit dem Wort No selbst zu tun, sondern vielmehr mit der Tatsache, dass es ein gültigen ist, aus zwei Buchstaben, Kulturnamen (in meinem Fall Norwegisch). Ich überprüfte, und tatsächlich gab es einen Unterordner in bin\Debug mit dem Namen No, der eine Satellitenbaugruppe namens Project.resources.dll darin enthielt.

Das Umbenennen der Ressource, um mit .EN.xxx oder .FR.xxx zu enden, zeigt natürlich das gleiche Verhalten.

+0

Wow, Sie können alles über StackOverflow finden! Hatte das gleiche Problem mit einer Datei ii.tif nicht eingebettet werden. –