Linked vs. Embedded Resources
Visual Studio projects provide two different options for handling resources; they can be linked (the default) or embedded. While it is possible to have both linked and embedded resources in a single project, in most cases you will want to choose one option for all of the resources in your project.
Linked resources are stored as files within the project; during compilation the resource data is taken from the files and placed into the manifest for the application. The application's resource file (.resx) stores only a relative path or link to the file on disk.
With embedded resources, the resource data is stored directly in the .resx file in a text representation of the binary data. In either case, the resource data is compiled into the executable file.
You can change resources from linked to embedded by changing the Persistence property for the resource file. For more information, see.
String resources are always embedded and cannot be changed; file resources are always linked and cannot be changed.
Choosing Between Embedded and Linked Resources
In most cases, you should stick with the default linked resources. However, there are cases in which embedded resources may be a better choice.
Embedded resources are the best choice if you need 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 only have to copy 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.
For more information, see.
Linked resources (the default) are the best choice for ease of use. Resources can be edited directly inside the project, and you can easily add or remove resources as needed.