2011-04-23 6 views
9

archivos WiX pueden reference other projects using $(var.ProjectName.TargetPath) sintaxis. Sin embargo, tengo un proyecto con un punto en el nombre (My.Project). ¿Cómo puedo hacer referencia a esto? He tratado:¿Puede WiX hacer referencia a un proyecto con un punto en el nombre?

  • $(var.My.Project.TargetPath)
  • $(var.My.Project.TargetPath)
  • $(var.My\.Project.TargetPath)
  • $(var.{My.Project}.TargetPath)
  • $(var.(My.Project).TargetPath)
  • $(var.[My.Project].TargetPath)
  • $(var.MyProject.TargetPath)
  • $(var.My%2EProject.TargetPath)

El error de generación que recibo es:

variable de preprocesador Indefinido '$ (var.My.Project.TargetPath)'

Respuesta

8

Lo siento, estoy usando WiX 3.5 y no puedo reproducir su problema. Creé una solución de muestra con una biblioteca de clases llamada "Foo.Bar" y un Módulo de combinación con una referencia de proyecto para "Foo.Bar".

Mi wixproj parece:

<ItemGroup> 
    <ProjectReference Include="..\Foo.Bar\Foo.Bar.csproj"> 
     <Name>Foo.Bar</Name> 
     <Project>{0bd367ce-5072-4161-8447-ff4deed97bd4}</Project> 
     <Private>True</Private> 
     <DoNotHarvest>True</DoNotHarvest> 
     <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups> 
     <RefTargetDir>INSTALLLOCATION</RefTargetDir> 
    </ProjectReference> 
    </ItemGroup> 

Mis wxs parece:

<Binary Id="TEST" SourceFile="$(var.Foo.Bar.TargetPath)"/> 
+0

Lamento perder el tiempo, resulta que fue mi culpa. –

+1

No fue una pérdida de tiempo. Aprendí algo nuevo después de agregar la referencia, siempre pude actualizar manualmente el elemento Nombre si alguna vez tuve un problema como este en el futuro. –

12

La respuesta es sí, y el método es :

$(var.My.Project.TargetPath) 

Como resultado, soy una droga que olvida agregar las referencias de proyecto a su proyecto de instalador.

+1

Intenta dejar votos de tu comentario para mayor visibilidad. Tuve el mismo problema y la misma causa. – ReiMasuro

+0

¡oh hombre! También perdí tanto tiempo para ver que también hice lo mismo tonto :) – vinayan

0

En mi caso tuve problemas con mayúsculas y minúsculas:

$(var.SomePrefix.MyProject.TargetPath) 

no funcionó con el proyecto llamado

"SomePrefix.Myproject" 

Funcionó con una letra mayúscula P en MyProject después de cambiar el nombre del proyecto.

Cuestiones relacionadas