Pergunta

Eu tenho um componente muito simples que corta todos os espaços à esquerda e à direita de (leitura / gravação) cordas em um oleoduto. Tanto quanto eu posso ver, eu só tenho um binário desta DLL em minha máquina de desenvolvimento. Estou transferi-lo para outra máquina de desenvolvimento e registrá-lo no GAC, mas quando eu abrir um pacote I copiado para a segunda máquina, eu recebo este aviso:

Erro 1 erro de validação. Data Flow Tarefa: DTS.Pipeline: os metadados do componente para "componente 'TrimColumnsComponent' (1909)" não pôde ser atualizado para a versão mais recente do componente. O método PerformUpgrade falhou. LD_CXSUM.dtsx 0 0

Eu tenho o componente na caixa de ferramentas, e eu pode arrastar outro para a tela de fluxo de dados e não parece ter qualquer problema.

Este é o SQL Server 2005 e Visual Studio 2005 em ambas as máquinas.

Na segunda máquina, posso criar um pacote a partir do zero e ele vai carregar na máquina que construiu o componente (mas o ícone é o ícone do componente de usuário padrão, a mesma que era na segunda máquina). Se eu criar um pacote a partir do zero na máquina de compilação, ele tem o ícone correto, mas dá a mensagem de atualização na máquina non-build. Os arquivos são idênticos no diretório componentes, eles têm o mesmo ID de classe de componente e eles estão registrados no GAC.

Eu verifiquei os arquivos dtsx manualmente inspecionando o XML e em pacotes criados na máquina de compilação ea máquina não-build, o ID de classe ea chave pública são idênticos entre as máquinas.

O que pode causar isso?

Foi útil?

Solução

Geralmente, isto significa que o componente foi atualizado depois que o pacote foi salvo, e por isso é o número da versão errada. Você vai ter que voltar a adicionar o componente, infelizmente, 1 .

Você pode ser capaz de salvar o pacote como uma nova versão e tente migrar isso. Isso pode resolver o problema da atualização automática que está sendo chamado (e posteriormente falha).

Outras dicas

Tem positiva a cópia do componente na GAC ??corresponde a cópia na pasta Program Files \ Microsoft SQL Server \ pasta 90 \ DTS \ PipelineComponents 100%? A cópia GAC ??é usado durante a execução, e a cópia sob PipelineComponents é utilizado pelo VS IDE. Se você estiver executando em uma máquina x64, eu certifique-se de copiá-lo para os PipelineComponents pasta sob tanto a pasta Arquivos de programas regulares e a pasta x86.

Incluindo Ferramentas Cliente SDK e Ferramentas Cliente compatibilidade com versões anteriores na instalação SQL Server resolveu o problema atualizando para mim.

Eu tive o mesmo problema, a maneira redonda isso para mim era implantar o projeto inteiro em vez de um pacote individual. Isso resolveu o problema e permitiu que o pacote para ser executado como normal.

Eu tive o mesmo problema e minha solução é a mesma que a do @AppleG. A questão foi gerado com a implantação de um único pacote, em vez de todo o projecto. O projeto foi implantado anteriormente por outro desenvolvedor, provavelmente com uma versão ligeiramente diferente do Assistente de implantação Visual Studio ou. Então eu implantado posteriormente apenas um pacote de minha VS.

Em conclusão, a implantação de todo o projeto novamente resolveu o problema.

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