Я знаю, что этот вопрос старый, но я наткнулся на него, когда искал способ для моего установщика установить недостающие шрифты, но не удалять их при удалении приложения. Надеюсь, это поможет кому-то еще, кто может столкнуться с этим вопросом. Мне было немного не по себе из-за обоих предоставленных решений (пустой / пустой Guid или установка компонента на постоянный). Вот я и придумал, что сработало для меня:
<Feature Id="myFonts" Title="Application Fonts" Level="1">
<ComponentGroupRef Id="Component_group_with_fonts_to_install" />
<Condition Level="0">
<![CDATA[REMOVE = "ALL"]]>
</Condition>
</Feature>
Таким образом устанавливается функция шрифта, но при удалении уровень функции устанавливается на 0, поэтому он остается один.