Из авторинга видно, что вы используете IsWiX (отказ от ответственности: я автор). IsWiX был разработан для поддержки только статической авторизации, а не той, которую вы пытаетесь сделать. Я много раз писал в блогах о том, почему я чувствую, что это безопаснее, но рассказывать историю о переполнении стека обычно не получается.
Тем не менее, IsWiX не помешает вам делать то, что вы пытаетесь сделать. Обычно я рекомендую сделать следующее:
В вашем основном проекте установки в папке Code создайте новый фрагмент wxs с именем "HarvestedComponents.wxs"
Передайте этот пустой файл в систему управления версиями и добавьте его в .gitignore при использовании Git.
Поместите следующее на этапе предварительной сборки проекта
C:\Program Files (x86)\WiX Toolset v3.11\bin\heat.exe" dir "$(SolutionDir)Deploy\Path-To-Some-Directory-To-Harvest" -dr INSTALLLOCATION -cg HarvestedComponents -gg -g1 -sf -srd -scom -sreg -ke -var "var.Deploy" -out "$(SolutionDir)ClientTools\Code\harvestedcomponents.wxs
Вам придется немного подправить его, чтобы он соответствовал желаемой структуре каталогов в Features.wxs.
Создайте проект и обратите внимание, что HarvestedComponents.wxs получает данные. Вы не хотите передавать это в систему контроля версий, но это не должно повредить, если вы это сделаете. Я бы не стал.
Теперь, чтобы подключить эти собранные компоненты к установщику, вам нужно отредактировать Code \ Features.wxs. Добавить:
<ComponentGroupRef Id="HarvestedComponents" />
к функции, с которой вы хотите связать эти компоненты.
Окончательный MSI теперь будет динамически создавать эти папки / файлы в MSI вместе со всем, что вы статически определяете в модуле mege wxs, используя IsWiX.
Примечание. Обратите внимание, что при таком подходе есть недостатки. Главным образом:
http://blog.iswix.com/2007/06/dealing-with-very-large-number-of-files.html
Мне также интересно, почему ваш артефакт sos имеет версию 06 на коробке разработчика и версию 05 на коробке сборки. Как часто это меняется? Если это просто ошибка версии и артефакт редко изменяется, возможно, вы решаете не ту проблему. Если версия предназначена для управления средой сборки и часто меняется, а имена папок и имена файлов меняются от версии к версии, тогда это может быть правильным решением для ваших нужд.