Pergunta

Como é

<None Include="C:\foo.bar" />

diferente

<Content Include="C:\foo.bar" />

?

Foi útil?

Solução

O artigo do MSDN sobre a propriedade ação de compilação explica as diferenças.

Nenhum - O arquivo não está incluído no grupo de saída do projeto e não é compilado no processo de compilação. Um exemplo é um arquivo de texto que contém documentação, como um arquivo Leia-me.

conteúdo - O arquivo não é compilado, mas está incluído no grupo de saída de conteúdo. Por exemplo, essa configuração é o valor padrão para um .htm ou outro tipo de arquivo Web.

Outras dicas

Uma diferença é a forma como elas são publicadas; "Nenhum" itens não são incluídos em uma publicação, os itens "conteúdo" fazer; por exemplo, na caixa de diálogo "Arquivos de Aplicação" na guia Publicar.

Não estou 100% de certeza (I ler a descrição MSDN de Build Action propriedade), mas apenas copiando essa resposta do MSDN para StackOverflow não responder à pergunta completamente para me.

A diferença de Nenhum e Conteúdo só tem um efeito sobre os projetos da Web. Para um projeto de linha de comando, projeto WinForm ou projeto UnitTest (no meu caso), etc. Nenhum e Conteúdo não têm um comportamento diferente.

MSDN: "grupo de projeto de saída" ou "grupo de saída de conteúdo" apenas termos usados ??em um projeto Web, certo

Na minha situação, meu arquivo MSBuild teve uma ItemGroup para recursos de imagem que apareceu a seguinte:

  <ItemGroup>
    <Content Include="Resources\image001.png" />
    <Content Include="Resources\image002.png" />
    <Content Include="Resources\image003.png" />
    <Content Include="Resources\image004.png" />
    <None Include="Resources\image005.png" />
    <None Include="Resources\image006.png" />
    <None Include="Resources\image007.png" />
  </ItemGroup>

Enquanto meu projeto estava construindo bem, isso me deixou perguntando por que eu tinha uma mistura de Content e item None elementos do tipo no meu ItemGroup. Este MSDN artigo (para Visual Studio 2010) me deu a orientação que eu estava procurando:

Note que quando o editor de recursos adiciona uma imagem, ele define Desenvolver Action para Nenhum , porque as referências ficheiro.resx a imagem Arquivo. Em tempo de compilação, a imagem é puxado para dentro da ficheiro.resources criado a partir do arquivo .resx. A imagem pode então ser facilmente acessados por meio da classe de rigidez auto-gerado para o arquivo .resx. Portanto, você não deve alterar esta configuração para Incorporado De recursos , porque fazer isso seria incluir a imagem duas vezes em a montagem.

Solução:. Com esta orientação, usando um editor de texto, eu mudei os elementos do tipo de item Content para None

Além disso, para uma visão geral de itens MSBuild, consulte este MSDN artigo .

Eu tenho um projeto que não contém itens compiláveis ??(ele armazena HTML e JavaScript para testes de unidade jasmim).

Um dia, a minha solução (que continham disse projeto) parou de compilar dizendo construir "o alvo '' não existe no projeto".

Eu adicionei uma importação para trazer o compilador, que funcionou bem na minha máquina, mas não conseguiu usando msbuild no servidor de compilação.

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Eu, então, mudou uma linha de

<None Include="SpecRunner.html" />

para

<Content Include="SpecRunner.html" />

e funcionou no servidor de compilação também.

Você precisa Nenhum em um arquivo de projeto modelo para incluir arquivos que você define na .vstemplate caso contrário, eles são perdidos no processo de criação e de tradução. Eles ficam para trás na pasta temp ele usa para construir tudo e, em seguida, eliminado pouco depois.

No meu caso .Pubxml é um desses arquivos entre Nenhum lista. Não é destinado a construção de uma solução ou como um arquivo estático para o projeto web. Mas para publicar o site para Azure, as configurações estão presentes neste.

De acordo com artigo Microsoft estes são os principais tipos que vemos entre os .csproj marcas de arquivo:

Nenhum - O arquivo não está incluído no grupo de saída do projeto e não é compilados no processo de construção. Um exemplo é um arquivo de texto que contém documentação, como um arquivo Leia-me.

Compilar - O arquivo é compilado para a saída de construção. Esta configuração é usado para arquivos de código.

Conteúdo - O arquivo não é compilado, mas está incluído no conteúdo grupo de saída. Por exemplo, essa configuração é o valor padrão para um .htm ou outro tipo de arquivo Web.

Embedded Resource - Este arquivo é incorporado na principal compilação de projeto saída como um DLL ou executável. É normalmente utilizado para recurso arquivos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top