Qual é a diferença entre um recurso e um recurso incorporado em um aplicativo C #?

89

Quando devo usar um ou outro?

Gostaria que todos os arquivos que uso em meu aplicativo (imagens, som, arquivo xml, etc.) estivessem dentro do arquivo .exe, para não implantar com um monte de pastas e arquivos.

Obrigado pela informação.

Sergio Tapia
fonte

Respostas:

83

As ações de construção “Resource” e “Content” são para acessar os recursos WPF usando o Uris. No entanto, “Embedded Resource” é para tecnologias anteriores. No entanto, ambas as opções incorporam o recurso na montagem, mas a opção “Recurso” a ser usada para WPF.

O MSDN fornece uma explicação completa aqui .

viky
fonte
1
Você está certo! Eu defini todas as imagens em meu projeto WPF como Resource e reconstruí a fonte. Agora, quando navego para a pasta Debug, não consigo encontrar os arquivos em nenhum lugar, eles devem fazer parte do .exe, exatamente como eu quero. Não posso agradecer o suficiente! :)
Sergio Tapia
1
O link do MSDN está quebrado. Uma explicação adicional aqui seria muito boa.
Michael Harris
9

Um recurso WPF (ação de construção = Recurso ) aproveita os recursos incorporados conforme o suporte da estrutura .NET principal, mas adiciona suporte para acessar o recurso incorporado por meio de um URI de pacote . Do MSDN :

Os arquivos de recursos WPF não são iguais aos tipos de recursos incorporados ou vinculados que podem ser configurados usando o suporte .NET Framework principal para recursos de montagem. Embora os arquivos de recursos WPF aproveitem o suporte a recursos integrados do .NET Framework principal, a capacidade de acessar arquivos de recursos WPF usando URIs de pacote é mais fácil do que usar namespaces.

Kent Boogaart
fonte
2

Conforme relatado pelo MSDN,

Recursos incorporados são a melhor escolha se você tiver que compartilhar arquivos de recurso de aplicativo (.resx) entre vários projetos. Por exemplo, se você tiver um arquivo de recurso comum que contém os logotipos de sua empresa, informações de marca registrada e outros, usar recursos incorporados significa que você deve copiar apenas o arquivo .resx e não os arquivos de dados de recursos associados.

Você não pode editar recursos incorporados diretamente. Se tentar editar um recurso incorporado, você receberá uma mensagem solicitando que converta o item em um recurso vinculado para editá-lo. A conversão é recomendada, mas opcional. Você deve exportá-los, fazer suas modificações em um programa externo e, em seguida, importá-los de volta para o seu projeto.

kiamlaluno
fonte
4
Isso não responde à pergunta: qual é a diferença entre um recurso embutido e um recurso? Você responde apenas aos endereços de recursos incorporados.
Grokys
3
O texto da pergunta diz "Quando devo usar um ou outro?"; Acho que respondi a isso. As perguntas são realmente duas.
kiamlaluno
1

Obrigado por todos os relatórios, que me ajudaram a encontrar mais precisamente onde estava o problema: Para mim, foram as imagens usadas como ícone do projeto na barra de tarefas que foram construídas como recursos e tiveram que ser construídas como conteúdo. Todas as outras imagens podem ser construídas como recursos, sem problemas.

Espero que isso ajude no futuro.

user2064543
fonte