Может ли WiX ссылаться на проект с точкой в ​​названии? - PullRequest
11 голосов
/ 23 апреля 2011

WiX-файлы могут ссылаться на другие проекты с использованием синтаксиса $(var.ProjectName.TargetPath). Тем не менее, у меня есть проект с точкой в ​​названии (My.Project). Как я могу ссылаться на это? Я пробовал:

  • $(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)

Ошибка сборки, которую я получаю:

Неопределенная переменная препроцессора '$ (var.My.Project.TargetPath)'

Ответы [ 3 ]

13 голосов
/ 23 апреля 2011

Ответ - да, и метод:

$(var.My.Project.TargetPath)

Как оказалось, я дурак, который забывает добавить ссылки на проект в свой проект установщика.

8 голосов
/ 23 апреля 2011

Извините, я использую WiX 3.5 и не могу воспроизвести вашу проблему.Я создал пример решения с библиотекой классов под названием «Foo.Bar» и модулем слияния со ссылкой на проект для «Foo.Bar».

Мой wixproj выглядит следующим образом:

  <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>

Мой WXS выглядит так:

<Binary Id="TEST" SourceFile="$(var.Foo.Bar.TargetPath)"/>
0 голосов
/ 12 сентября 2017

В моем случае у меня были проблемы с чувствительностью к регистру:

$(var.SomePrefix.MyProject.TargetPath)

не работал с проектом с именем

"SomePrefix.Myproject"

Он работал с заглавной буквой P в MyProject после переименования проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...