You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In AutoCAD, we use a property called ORIGSTANDALONENETWORKTYPE. This property is used by a custom action delivered by licensing group, and cannot be changed.
When we broke out some ACAD specific licensing into separate MSMs (to share with ACAD vertical products), we noticed a problem with the Modularization code. This property should not be Modularized as we add the SuppressModularization attribute. This works everywhere except when the property is used as part of the Component Condition:
Expected value:
ACADLOCKTYPE = "2" AND ORIGSTANDALONENETWORKTYPE <> "3" AND NIWSELECTION = 1
Actual Value:
ACADLOCKTYPE = "2" AND ORIGSTANDALONENETWORKTYPE.E26FEF92_AA43_4038_AD07_6BF1C4B34096 <> "3" AND NIWSELECTION = 1
After debugging the Wix Toolset, it appears the regular expression in Row.cs detects the characters "OR" in the property name as a keyword, and therefore only sees the property name as "IGSTANDALONENETWORKTYPE"
This can be confirmed using an online RegExp tool, like http://regexhero.net/tester/
Here is the RegEx Row.cs uses:
NOT|EQV|XOR|OR|AND|IMP|"".?""|%[a-zA-Z][a-zA-Z0-9_.]|(?[!$?&]?[a-zA-Z][a-zA-Z0-9_.]*)
The workaround is to create another property called "IGSTANDALONENETWORKTYPE" and suppress modularizartion on this. This will suppress the modularization of the Component Condition, while the real property suppresses modularization everywhere else.
Looking at the source code, this defect also affects Wix 3.9.
Originally opened by jbaker
The text was updated successfully, but these errors were encountered:
In AutoCAD, we use a property called ORIGSTANDALONENETWORKTYPE. This property is used by a custom action delivered by licensing group, and cannot be changed.
When we broke out some ACAD specific licensing into separate MSMs (to share with ACAD vertical products), we noticed a problem with the Modularization code. This property should not be Modularized as we add the SuppressModularization attribute. This works everywhere except when the property is used as part of the Component Condition:
Expected value:
ACADLOCKTYPE = "2" AND ORIGSTANDALONENETWORKTYPE <> "3" AND NIWSELECTION = 1
Actual Value:
ACADLOCKTYPE = "2" AND ORIGSTANDALONENETWORKTYPE.E26FEF92_AA43_4038_AD07_6BF1C4B34096 <> "3" AND NIWSELECTION = 1
After debugging the Wix Toolset, it appears the regular expression in Row.cs detects the characters "OR" in the property name as a keyword, and therefore only sees the property name as "IGSTANDALONENETWORKTYPE"
This can be confirmed using an online RegExp tool, like http://regexhero.net/tester/
Here is the RegEx Row.cs uses:
NOT|EQV|XOR|OR|AND|IMP|"".?""|%[a-zA-Z][a-zA-Z0-9_.]|(?[!$?&]?[a-zA-Z][a-zA-Z0-9_.]*)
The workaround is to create another property called "IGSTANDALONENETWORKTYPE" and suppress modularizartion on this. This will suppress the modularization of the Component Condition, while the real property suppresses modularization everywhere else.
Looking at the source code, this defect also affects Wix 3.9.
The text was updated successfully, but these errors were encountered: