Pergunta

Eu tenho um projeto que é armazenado em um repositório Subversion.

Neste repositório, em uma pasta diferente, eu tenho um conjunto de bibliotecas que eu uso em muitos dos meus projetos. Essas bibliotecas são armazenados como arquivos binários, ou seja. a dll de, pdb de e xml de.

Aqui está um exemplo de layout:

<repo-url>
    \Libraries
        \SQLite
        \SystemHooks
        \Moq

No projeto de aplicativo, eu adicionar um "libs" diretório, em seguida, adicione um svn:. Estabelecimento de referência externos para esse diretório para puxar as bibliotecas que eu preciso

Por exemplo, para este projeto que estou trabalhando agora, o que levou a esta pergunta, eu preciso a biblioteca SystemHooks, portanto, em meu aplicativo estrutura de pastas do projeto, que agora se parece com isso:

SketchingMode         <-- solution folder, other projects here as well
    SketchingMode     <-- app project folder
        libs
            SystemHooks

A coisa agradável sobre isso é que eu posso mais facilmente atualizar as bibliotecas, e usar apenas o especificador -rXYZ para a definição externa para evitar puxando em versões mais novas do que eu estou pronto para aceitar, e ainda ter apenas uma cópia do cada arquivo / versão no meu repositório.

A única coisa ruim, neste caso particular, é que uma das DLL no diretório SystemHooks (2 se eu quiser o APO também) precisa ser copiados para o diretório de saída, não referenciado pelo projeto.

Referências trabalhar como normal, mas uma vez eu tag um dos arquivos neste diretório como "Conteúdo" e "Copiar sempre" ou "Copy if newer", então o libs e SystemHooks estrutura de diretório também é copiado para o diretório de saída.

Como tal, após uma compilação, meus olhares estrutura de diretório no disco como este:

SketchingMode         <-- solution folder, other projects here as well
    SketchingMode     <-- app project folder
        libs
            SystemHooks
        bin
            Debug               <-- main build output here
                libs
                    SystemHooks <-- 1-2 files in here

É a única maneira de evitar isso para usar as etapas de pós-construção e basta adicionar as declarações de cópia necessárias? Ou eu posso de alguma forma ajustar o arquivo de projeto para evitar copiar a estrutura completa assim?

Apenas para deixar claro, no bin \ Debug, eu não quero outra camada de libs \ SystemHooks lá, e todos os arquivos actualmente a ser copiado para o bin \ Debug SystemHooks pasta \ libs \ precisa ser copiados para o bin \ Debug vez.

Foi útil?

Solução

Como sobre a verificação para fora o diretório libs ao nível da solução , em vez do projeto? Isso é o que fazemos desde montagens de biblioteca tendem a ser utilizado por vários projectos; colocando diretório direta dentro de um projeto não faria para um recurso altamente compartilháveis.

SketchingMode solution
  SketchingMode proj
    bin
      Debug
      Release
  Libs
    SystemHooks
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top