Question : C#: Embedded files

I have been racking my brain to solve this problem. I have two C# application.

1: CSharpUtilityBelt (Class Library built into a DLL)
2: ConsoleApplication1 (Built into an EXE)

In the class library I have added a XML file and set it to embedded resource. Then in ConsoleApplication1 I referenced CSharpUtilityBelt. I have been looking for ways to get to the embedded resource, here is what I found.

"Do you want the data in the file or the filename? I use the following to
access the contents of an embedded file:

Stream stream =
Assembly.GetExecutingAssembly().GetManifestResourc eStream(name);

Note that the name needs to include the default namespace for the[/color][/color]
project.[color=blue][color=green]
e.g. If the default namespace was My.Namespace and the file with its[/color][/color]
build[color=blue][color=green]
action set to "Embedded Resource" was called TextFile1.txt then you'd[/color][/color]
need[color=blue][color=green]
to pass "My.Namespace.TextFile1.txt" to GetManifestResourceStream().

You can check what the name to use for a built assembly by loading the
assembly into ildasm.exe, opening the manifest, and looking for the[/color]
relevant[color=green]
.mresource entry.

 e.g.


 .mresource public My.Namespace.TextFile1.txt
{
}"

Here is my code in ConsoleApplication1:

System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(ConsoleApplication1.TestXMLFile.xml);

I tried the namespace ConsoleApplication1.TestXMLFile.xml and CSharpUtilityBelt.TestXMLFile.xml. Eitehr way I get the error "The type or namespace name 'TestXMLFile' does not exist in the namespace 'ConsoleApplication1' (are you missing an assembly reference?)". I do not know what to do next.

Answer : C#: Embedded files

You should move the code

System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("CSharpUtilityBelt.TestXMLFile.xml");

to a function inside the dll.  
Then GetExecutingAssembly should return the DLL assembly (since that one is executing at that moment).
Note that the name of the manifest resource is case sensitive.
Random Solutions  
 
programming4us programming4us