Ich habe WiX Github überprüft und sieht so aus, als ob das heute nicht möglich ist. Sobald Sie eine MsiProperty in BURN definieren, wird der Wert festgelegt und an die MSI übergeben, unabhängig davon, ob der Wert leer ist oder nicht. Hier ist eine Momentaufnahme des Codes:
extern "C" HRESULT MsiEngineParsePropertiesFromXml(
__in IXMLDOMNode* pixnPackage,
__out BURN_MSIPROPERTY** prgProperties,
__out DWORD* pcProperties
)
{
HRESULT hr = S_OK;
IXMLDOMNodeList* pixnNodes = NULL;
IXMLDOMNode* pixnNode = NULL;
DWORD cNodes = 0;
BURN_MSIPROPERTY* pProperties = NULL;
// select property nodes
hr = XmlSelectNodes(pixnPackage, L"MsiProperty", &pixnNodes);
ExitOnFailure(hr, "Failed to select property nodes.");
// get property node count
hr = pixnNodes->get_length((long*)&cNodes);
ExitOnFailure(hr, "Failed to get property node count.");
if (cNodes)
{
// allocate memory for properties
pProperties = (BURN_MSIPROPERTY*)MemAlloc(sizeof(BURN_MSIPROPERTY) * cNodes, TRUE);
ExitOnNull(pProperties, hr, E_OUTOFMEMORY, "Failed to allocate memory for MSI property structs.");
// parse property elements
for (DWORD i = 0; i < cNodes; ++i)
{
BURN_MSIPROPERTY* pProperty = &pProperties[i];
hr = XmlNextElement(pixnNodes, &pixnNode, NULL);
ExitOnFailure(hr, "Failed to get next node.");
// @Id
hr = XmlGetAttributeEx(pixnNode, L"Id", &pProperty->sczId);
ExitOnFailure(hr, "Failed to get @Id.");
// @Value
hr = XmlGetAttributeEx(pixnNode, L"Value", &pProperty->sczValue);
ExitOnFailure(hr, "Failed to get @Value.");
// @RollbackValue
hr = XmlGetAttributeEx(pixnNode, L"RollbackValue", &pProperty->sczRollbackValue);
if (E_NOTFOUND != hr)
{
ExitOnFailure(hr, "Failed to get @RollbackValue.");
}
// prepare next iteration
ReleaseNullObject(pixnNode);
}
}
sieht wie folgt aus wird eine neue Funktion in WiX4.0 wie HERE erwähnt
Jetzt, wo gesagt wird, wenn Sie der Autor dieses MSI sind, dann können Sie Überprüfen Sie den Wert der Eigenschaft in Ihrer MSI-Datei (.wxs), und legen Sie einen anderen Wert fest, wenn dieser unter Verwendung von SetProperty "leer" angezeigt wird.
Hat dies geholfen ????? – Isaiah4110