Pergunta

Eu vim através de várias fontes afirmando que dividir um arquivo de instalação do WiX para as partes separadas (variáveis, componentes, etc.) usando arquivos de inclusão (.wxi). Faz todo o sentido para mim, então eu peguei o Nós fora do arquivo .wxs e colocá-los em um arquivo separado, mas quando tento compilar o projeto no Visual Studio 2008 eu recebo um erro para cada declarando é uma "referência não resolvida para o símbolo '...' na seção 'produto: {...}".

Eu tentei usar o Tag no meu arquivo Product.wxs, mas que parece quebrar a validação do esquema. Se essa é a maneira de incluí-lo, onde não é preciso ir?

Os arquivos que tenho são as seguintes.

Product.wxs

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product ...>
    <Package .../>
    <Media .../>
    <Directory Id="TARGETDIR" Name="SourceDir">
    </Directory>
    <Feature Id="MainProgram" Level="1">
      <ComponentRef Id="ProductComponent" />
      <Feature Id="ContextMenu" Level="2">
        <ComponentRef Id="ContextMenuComponent" />
      </Feature>
    </Feature>
  </Product>
</Wix>

Components.wxi

<?xml version="1.0" encoding="utf-8"?>
<Include>
  <Fragment>
    <Component Id="ProductComponent" ...>
      <File .../>
    </Component>
    <Component Id="ContextMenuComponent" ...>
      <RegistryKey .../>
    </Component>
  </Fragment>
</Include>

Como faço para obtê-lo para construir no Visual Studio? Script a construção parece mais simples, mas não é um problema meu ainda.

Foi útil?

Solução

Os arquivos de inclusão deve ser pensado como arquivos de cabeçalho, você realmente só quer usá-los para declarar variáveis ??comuns, etc que você precisa para compartilhar entre vários arquivos .wxs.

Meu projeto usa ~ 10 arquivos .wxs e um único .wxi que definem o código do produto, código de atualização, etc em.

Para uma melhor idéia do que eu estou falando sobre check-out às perguntas SO Tricks Wix & melhores Práticas e WiX Inclui vs. Fragmentos bem, como sempre, a documentação em Wix.chm

Outras dicas

Tente usar a extensão WXS em vez de WXI. Eu quebrei meu e usado WXS como a extensão, e ele só trabalhou. Todos os arquivos WXS no projeto são passados ??para o compilador Wix pelo wixproj.

Encontrado esta pergunta pesquisa para o meu problema e eu percebi que eu adicionar o meu correção meter alguém veio de onde eu fiz.

Se você estiver usando um arquivo wixproj para compilar a partir do Visual Studio, parece que este tipo de projeto não suporta links de arquivos (Adicione exising item ... Adicionar como link). Você vai acabar com as ligações em seu projeto, mas quando você compilá-lo se queixam de que existem símbolos não resolvidos.

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