Na maioria das vezes, você aceita o padrão que o Visual Studio define para você ... Estou me referindo à propriedade BuildAction para cada arquivo selecionado no Gerenciador de Soluções. Existem várias opções e é difícil saber o que cada uma delas fará.
AdditionalFiles
? Eu o vejo no VS 2015, mas não consegui encontrar uma referência para isso.A partir da documentação:
fonte
Página - Pega o arquivo XAML especificado e compila no BAML e incorpora essa saída no fluxo de recursos gerenciados para seu assembly (especificamente AssemblyName.g.resources). Além disso, se você tiver os atributos apropriados no elemento XAML raiz no diretório arquivo, ele criará um arquivo blah.g.cs, que conterá uma classe parcial do "codebehind" dessa página; isso basicamente envolve uma chamada para o BAML goop para re-hidratar o arquivo na memória e definir qualquer uma das variáveis de membro da sua classe para os itens agora criados (por exemplo, se você colocar x: Name = "foo" em um item , você poderá fazer isso .oo.Background = Purple; ou similar.
ApplicationDefinition - semelhante a Page, exceto que continua a ultrapassar os limites e define o ponto de entrada para o seu aplicativo que instanciará o objeto do aplicativo, executará a chamada, que instancia o tipo definido pela propriedade StartupUri e exibirá a janela principal .
Além disso, para ficar claro, essa questão geral é infinita em seu conjunto de resultados; qualquer um pode definir BuildActions adicionais apenas criando uma tarefa MSBuild. Se você procurar no diretório% systemroot% \ Microsoft.net \ framework \ v {version} \ e observar o arquivo Microsoft.Common.targets, poderá decifrar muito mais (por exemplo, no VS Pro e acima, existe uma ação "Sombra" que permite gerar acessadores particulares para ajudar no teste de unidade de classes particulares.
fonte
O VS2010 possui uma propriedade para 'Build Action' e também para 'Copy to Output Directory'. Portanto, uma ação de 'Nenhum' ainda será copiada para o diretório de construção se a propriedade de cópia estiver configurada como 'Copiar se mais recente' ou 'Copiar sempre'.
Portanto, uma ação de compilação de 'Conteúdo' deve ser reservada para indicar o conteúdo que você acessará via 'Application.GetContentStream'
Usei a configuração 'Build Action' de 'None' e a configuração 'Copy to Output Direcotry' de 'Copy if Newer' para algumas inclusões .config vinculadas externamente.
G.
fonte
No VS2008, a entrada do documento que parece mais útil é:
Windows Presentation Foundation Criando um aplicativo WPF (WPF)
ms-help: //MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm
ApplicationDefinition Identifica o arquivo de marcação XAML que contém a definição do aplicativo (um arquivo de marcação XAML cujo elemento raiz é Application). ApplicationDefinition é obrigatório quando Install for true e OutputType for winexe. Um aplicativo WPF e, consequentemente, um projeto MSBuild podem ter apenas uma ApplicationDefinition.
Página Identifica um arquivo de marcação XAML cujo conteúdo é convertido em um formato binário e compilado em um assembly. Os itens da página geralmente são implementados em conjunto com uma classe code-behind.
Os itens de página mais comuns são arquivos XAML cujos elementos de nível superior são um dos seguintes:
Recurso Identifica um arquivo de recurso que é compilado em um assembly de aplicativo. Como mencionado anteriormente, o UICulture processa itens de recursos.
Conteúdo Identifica um arquivo de conteúdo que é distribuído com um aplicativo. Os metadados que descrevem o arquivo de conteúdo são compilados no aplicativo (usando AssemblyAssociatedContentFileAttribute).
fonte
Que tal esta página do Microsoft Connect (explicando os tipos DesignData e DesignDataWithDesignTimeCreatableTypes). Citação:
A seguir, são descritas as duas ações de compilação para arquivos de dados de amostra.
Arquivos .xaml de dados de amostra devem receber uma das ações de compilação abaixo:
DesignData : os tipos de dados de amostra serão criados como tipos falsos. Use esta Ação de criação quando os tipos de dados de amostra não puderem ser criados ou tiverem propriedades somente leitura para as quais você deseja definir valores de dados de amostra.
DesignDataWithDesignTimeCreatableTypes : os tipos de dados de amostra serão criados usando os tipos definidos no arquivo de dados de amostra. Use esta Ação de compilação quando os tipos de dados de amostra puderem ser criados usando seu construtor vazio padrão.
Não é tão incrivelmente exaustivo, mas pelo menos dá uma dica. Este passo a passo do MSDN também fornece algumas idéias. Não sei se essas ações de compilação também são aplicáveis a projetos que não são do Silverlight.
fonte
fonte