1
votes

In my WIX project, I want to use Cited Properties. The following Cited Properties work well

<PropertyRef Id="NETFRAMEWORK45"/>
    <Condition Message="You must install .Net Framework 4.5">
      <![CDATA[Installed OR NETFRAMEWORK45]]>
    </Condition>
<PropertyRef Id="VersionNT64"/>
    <Condition Message="This application cannot be running on 32 bit architechure">
      <![CDATA[Installed OR VersionNT64]]>
    </Condition>

But other Properties use my debug to filed with the following message:

"Error 1 Unresolved reference to symbol 'Property:MsiNTProductType' in section 'Product:*'" for example:

BTW, the WixNetFxExtension exist.

3
I'm not sure why you posted a property example that works but you don't post the actual failing thing that refers to MsiNTProductType. - PhilDW

3 Answers

1
votes

MsiNTProductType is a valid built-in Windows Installer property, so this should work OK provided you haven't got any typos in the WIX code. As Phil asks, please update your question with the actual Wix code that references the MsiNTProductType property.

In my experience it is easy to mix up something trivial in a Wix source file, and the error is most likely just an extra comma, dot or some other trivial typo. I'll just include a link to the MSI Property Reference.

0
votes

This is my properties section. The only one that work is "NETFRAMEWORK45". The rest of them in comment because they cuse the error I mention. I must understand why the error occured. Thanks, Didi

    <PropertyRef Id="NETFRAMEWORK45"/>
    <Condition Message="You must install .Net Framework 4.5">
      <![CDATA[Installed OR NETFRAMEWORK45]]>
    </Condition>

    <!--
    <PropertyRef Id="POWERSHELLVERSION"/>
    <Condition Message="You must install Powershell ver 3.0">
      <![CDATA[Installed OR POWERSHELLVERSION >= "3.0"]]>
    </Condition>


    <PropertyRef Id="VersionNT64"/>
    <Condition Message="This application cannot be running on 32 bit architechure">
      <![CDATA[Installed OR VersionNT64]]>
    </Condition>

    <PropertyRef Id ="VersionNT"/>
    <Condition Message="Operating system must be Windows Server 2008 or higher">
      <![CDATA[VersionNT >= 600]]>
    </Condition>

    <PropertyRef Id ="MsiNTProductType"/>
    <Condition Message="Operating system must be SERVER O.S">
      <![CDATA[MsiNTProductType <> 3]]>
    </Condition>
    -->
0
votes

MsiNTProductType is a standard Windows Installer property - you're trying to redefine it and getting that error. All you need for the standard properties is the condition - delete the PropertyRef for MsiNTProductType, VersionNT, VersionNT64.