Pergunta

Eu tenho um aplicativo que irá usar um dispositivo em alguns casos (impressora ou seja). Basicamente, em um escritório será utilizado nesta impressora, e em outro escritório nunca serão usados ??nesta impressora.

A funcionalidade de usar a impressora está sentado no código do aplicativo, e a DLL que se comunicam com a impressora são referenciados no código. Assim, a DLL são parte do pacote .msi a instalação.

No entanto, estes DLL não pode ser registrado durante a instalação se o pré-requisito (um monte de drivers para a impressora, fornecido pelo fabricante como um único exe instalação) não está instalado. O instalador para os motoristas é sobre o tamanho de 50M.

Eu não querer incluir um arquivo 50M extra no pacote de instalação para o escritório que nunca vai usar a impressora. Quais são as possíveis soluções para o problema?

Finalmente, eu iria querer uma opção para pular de alguma forma de registro desses dll durante a instalação. Mas eu não sei como abordar isso.

Eu acho que eu poderia ter uma compilação condicional no código. Mas isso envolveria uma quantidade significativa de trabalho para separar completamente o código que fala com esse tipo de impressora a partir do resto do código do aplicativo.

Qualquer possíveis soluções?

Foi útil?

Solução

Grupo as DLLs que estão a ser condicionalmente instalado / registado um componente. Então em seu Component da MSI, use a coluna condição de depender propriedade a ser definida. Em localizador tabelas do seu MSI , linhas Configurar para olhar para os pré-requisitos e defina a propriedade.

Você pode aprender mais sobre isso lendo:

http://msdn.microsoft.com/ en-us / library / aa371564 (VS.85) .aspx

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