Hier ist das cakebuild Skript:Wie leere Verzeichnis in WiX zu erhitzen?
WiXHeat(Directory("../Release"), new FilePath("./xxx/Files.wxs"), WiXHarvestType.Dir, new HeatSettings
{
AutogeneratedGuid = true,
ComponentGroupName = "Binaries",
Transform = "./Filter.xslt",
SuppressCom = true,
SuppressFragments = true,
SuppressRegistry = true,
SuppressRootDirectory = true,
PreprocessorVariable = "var.xxx.TargetDir",
DirectoryReferenceId = "INSTALLFOLDER",
WorkingDirectory = "./xxx_Installer",
KeepEmptyDirectories = true,
GenerateGuid = true,
});
Es Argumente verwendet: -ke -ag -GG.
Die Files.wxs wie folgt aussieht:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="dir76A8B56EDC1C4DD3CB4177F3704BC91E" Name="data">
<Component Id="cmpE375532277DA492834892BE47B02E5DA" Guid="*" KeyPath="yes">
<CreateFolder />
</Component>
</Directory>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Binaries">
<ComponentRef Id="cmpE375532277DA492834892BE47B02E5DA" />
</ComponentGroup>
</Fragment>
</Wix>
Dann leuchtet nicht mit Files.wxs arbeiten, hier ist der Fehler:
...\Files.wxs(29) : error LGHT0230 : The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components using a Directory as a KeyPath or containing ODBCDataSource child elements cannot use an automatically generated guid. Make sure your component doesn't have a Directory a s the KeyPath and move any ODBCDataSource child elements to components with explicit component guids. An error occured when executing task 'BuildInstaller'. Error: Light: Process returned an error (exit code 230).
Es scheint, dass für leeres Verzeichnis, es muss eine haben zugewiesene Gilde, nicht "*" nach this article.
Ich mag nicht manuell ersetzen „*“ mit einer GUID, da die Wärme/Lichtverfahren mit Build-Prozess integriert ist und Files.wxs ist in der Quellcodeverwaltung.
Wissen Sie, wie diese Fehler zu beheben?