What's the difference between a Resource and an Embedded Resource in a C# application?

35,677

Solution 1

“Resource” and “Content” build actions are to access the WPF resources using the Uris. However “Embedded Resource” is for prior technologies. However both options embed the resource in assembly but “Resource” option to be used for WPF.

MSDN provides full explanation here.

Solution 2

A WPF resource (build action = Resource) leverages embedded resources as supported by the core .NET framework, but adds support for accessing the embedded resource via a pack URI. From MSDN:

WPF resource files are not the same as the embedded or linked type of resources that can be configured using the core .NET Framework support for assembly resources. While WPF resource files do leverage the core .NET Framework embedded resource support, the ability to access WPF resource files using pack URIs is easier than using namespaces.

Solution 3

As reported by MSDN,

Embedded resources are the best choice if you have to share application resource (.resx) files between multiple projects. For example, if you have a common resource file that contains your company's logos, trademark information, and such, using embedded resources means you have to copy only the .resx file and not the associated resource data files.

You cannot edit embedded resources directly. If you try to edit an embedded resource, you will receive a message prompting you to convert the item to a linked resource in order to edit it. Conversion is recommended but optional. You must export them, make your modifications in an external program, and then import them back into your project.

Solution 4

Thanks for all the reports, that helped me find more precisely where was the problem: For me, it was the images used as project icon in the task bar that was built as resources and had to be built as content. All others images can be build as resources, no problem.

Hope this helps for the future.

Share:
35,677
Sergio Tapia
Author by

Sergio Tapia

I'm a 21 year old professional programmer that likes to read about a wide range of things related to programming. Currently, I'm pounding away at ASP.Net MVC2.

Updated on July 10, 2022

Comments

  • Sergio Tapia
    Sergio Tapia almost 2 years

    When should I use one or the other?

    I'd like all of the files I use in my app (images, sound, xml file, etc.) to be inside of the .exe file so I don't deploy with a bunch of folders and files.

    Thanks for the info.

  • Grokys
    Grokys over 14 years
    This diesn't answer the question: what is the difference between an embedded resource and a resource? You answer only addresses Embedded Resources.
  • Sergio Tapia
    Sergio Tapia over 14 years
    You're right! I set all the images in my WPF project to Resource and re-built the source. Now when I navigate to the Debug folder I cannot find the files anywhere, they must be a part of the .exe, exactly how I want it. Can't thank you enough! :)
  • apaderno
    apaderno over 14 years
    The text of the question says "When should I use one or the other?"; I think I answered to that. The questions are really two.
  • Michael Harris
    Michael Harris almost 6 years
    The MSDN link is broken. Additional explanation here would be very nice.