Pergunta

É possível dividir as informações em um .csproj em mais de um arquivo? Um pouco como uma versão do projeto do recurso partial class.

Foi útil?

Solução

Você não pode ter mais de um csproj mestre. Mas porque a fiação por baixo do csproj é feito usando msbuild você pode simplesmente ter csproj parcial múltipla que importar entre si. O arquivo de solução veria o mais derivada csproj.

Project1.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ....
</Project>

project2.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project1.csproj" />
    ...
</Project>

project.csproj -. Este é o principal projeto que é referido pelo arquivo de solução

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project2.csproj" />
    ...
</Project>

A linha inferior é que usando msbuild Importar característica que você pode ter arquivos csproj parciais onde cada um deve conter definições que o projeto principal (project.csproj no meu exemplo) iria usar.


Visual Studio irá mostrar um Aviso de Segurança para projecto de diálogo quando você abre a sua solução ou projeto arquivo alterado. Escolha a opção Carga Projeto Normalmente e pressione OK . Ao abrir a solução novamente mais tarde o aviso não será mostrado porque a configuração de Carga Projeto Normalmente é armazenado no suo arquivo.

Outras dicas

Sim, você pode dividir informações entre vários arquivos. Você pode usar Import elemento (MSBuild) .

Note que o Visual Studio lhe dará aviso de segurança chato se você vai tentar arquivo de projeto aberto que inclui outros arquivos do projeto.

linky Útil do MSDN:

Como: Use o mesmo alvo em Arquivos do projeto múltipla

Note que os arquivos externos têm .targets extensão de convenções.

Bem, você pode ter vários projetos combinados em uma grande solução, mas eu não acho que isso é exatamente o que você tinha em mente à medida que cada projeto tem que ser um projeto completo nesse caso.

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