O Visual Studio 2008 e 2010 se comporta de maneira diferente ao fazer referência aos conjuntos no sistema de arquivos?

StackOverflow https://stackoverflow.com/questions/3446637

Pergunta

Estou vendo um fenômeno estranho no Visual Studio 2010.

Minha configuração do projeto é essa (eu herdei isso - não posso alterá -lo tão cedo, infelizmente :-():

  • Um aplicativo WinForms que usa relatórios de cristal X (v10) como seu mecanismo de relatório; A edição completa do desenvolvedor CR X está instalada na minha caixa de dev

  • Vários aplicativos da WebForms que usam relatórios de cristal XI (v11) Como seu mecanismo de relatório - não é possível instalar a versão completa do CR XI, pois entra em conflito com Cr X Dev Edition ....

Para fazer as coisas funcionarem em nosso servidor de construção, também criei um Library Pasta dentro do diretório de projeto do aplicativo WinForms com os arquivos de tempo de execução CR X de que preciso, bem como um Library Pasta dentro do diretório de projetos do aplicativo da web com os arquivos de tempo de execução do CR XI.

No VS 2008, pude escolher as montagens necessárias da respectiva pasta da biblioteca em meus projetos WinForms (várias bibliotecas de classes etc.) e nos meus aplicativos da web. Tudo funcionou muito bem.

Quando atualizei para o Visual Studio 2010, agora de repente estou vendo:

  • Nos meus aplicativos WinForms, todas as referências aos arquivos de tempo de execução CR X estão sendo atualizados automaticamente para usar os arquivos Cr X do GAC - isso é não o que eu quero! Não ajuda se eu excluir essas referências e re-adquiri-las novamente, navegando para o Library Pasta - Quando eu as escolho, o VS2010 parece conversá -los automaticamente em referências GAC novamente ...

  • Nos meus aplicativos da web, as coisas ficam ainda piores: quando eu escolho as assembléias de tempo de execução do CR XI do Library Pasta, novamente, o VS2010 parece detectar automaticamente que existem arquivos semelhantes (mesmo nome, mas versões diferentes) no GAC e usa esses arquivos - agora meus aplicativos da web não funcionam mais ...

O que está acontecendo com o VS 2010 aqui ?? Por que não pode deixar minhas seleções em paz e me deixe escolher meus arquivos de tempo de execução de um Library Pasta em vez de insistir em ir ao GAC ?? O que mudou entre o VS 2008 e o VS 2010 a esse respeito ?? Alguém tem alguma ideia disso?

Foi útil?

Solução

Pode ser útil para

(1) Vá para Ferramentas Opções Project & Solutions Build & Run e Altere a verbosidade do MSBUILD para 'Diagnóstico' e, em seguida, construa e na janela de saída, veja como a lógica de resolução de referência do MSBUILD está funcionando para esses conjuntos. Ou seja, se o VS ainda não fez algo ridículo com o arquivo .csproj subjacente

(2) Compare o XML no arquivo do projeto VS2008 versus o arquivo do projeto VS2010 para ver o que está no <Reference> nós

Um palpite especulativo selvagem: o projeto VS2010 está segmentando ".NET 4.0 Client" (em vez de ".NET 4.0 (Full Framework)", e as bibliotecas precisam da estrutura completa, e o MSBuild vê essa dependência e está usando a lógica de fallback.

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