Ответ 1
Свойство NETFRAMEWORK45
может использоваться так же, как NETFRAMEWORK40FULL
. Обратите внимание, что для .NET Framework v4.5 нет "клиентской" или "полной" структуры. Есть только один. Поэтому следующий код должен делать то, что вы хотите:
<PropertyRef Id="NETFRAMEWORK40FULL"/>
<PropertyRef Id="NETFRAMEWORK45"/>
<Condition Message='This setup requires Microsoft .NET Framework 4.0 Full package or greater needs to be installed for this installation to continue.'>
<![CDATA[Installed OR NETFRAMEWORK40FULL]]>
</Condition>
<Condition Message='This setup requires Microsoft .NET Framework 4.5 package or greater needs to be installed for this installation to continue.'>
<![CDATA[Installed OR NETFRAMEWORK45]]>
</Condition>
Обратите внимание, что .NET Framework v4.5 - это модернизация .NET Framework 4.0, поэтому проверка на то, что вы оба можете получить в ситуации, когда вы никогда не будете удовлетворять обоим условиям. Вы можете просто проверить, установлена ли .NET Framework v4.0 или .NET Framework v4.5. Это условие будет больше похоже на:
<Condition Message='This setup requires Microsoft .NET Framework 4.0 Full or 4.5 package or greater needs to be installed for this installation to continue.'>
<![CDATA[Installed OR NETFRAMEWORK40FULL OR NETFRAMEWORK45]]>
</Condition>