Question

J'ai la fonction ci-dessous comme une partie de ma construction de psake. Lorsque la construction est en cours d'exécution Candle.exe lance cette erreur:

candle.exe: avertissement CNDL1098:. 'Ext \ build \ packages \ WixWeb \ bin \ WixIIsExtension.dll' est pas un argument de ligne de commande valide

Je pense que cela est un problème avec la façon dont je passe args la ligne de commande, mais je ne peux pas pour la vie de me comprendre.

Les singes ont des suggestions powershell?

function buildMsi($build_dir, $template, $directory) { 
    "Building Msi" 
    "Build Folder: $build_dir"
    "Wix Template: $template"
    "Website: $directory"

    $wixXml = [xml](Get-Content $template)
    $namespaceManager = New-Object Xml.XmlNamespaceManager($wixXml.PSBase.NameTable)
    $namespaceManager.AddNamespace("wi", "http://schemas.microsoft.com/wix/2006/wi")
    $components = $wixXml.Wix.Fragment.ComponentGroup

    WalkDirectory $wixXml.PSBase.SelectSingleNode("/wi:Wix/wi:Fragment/wi:DirectoryRef", $namespaceManager) $directory
    $wixXml.Save("$build_dir\WebContent.wxs")

    .\Build\WixWeb\bin\Candle.exe """-dProductName=Foo""`
         ""-dVersion=1.0.0.0""`
         ""-dProductID=0cd64670-5769-4e34-8b21-c6242e7ca5a2""`
         ""-dUpgradeCode=307601e9-4eea-4b5c-938a-354115d5c419""`
         ""-dAppPool=FooAppPool""`
         ""-dInstallDirectory=Foo""`
         ""-dWebAppDirectoryComponentId=CF57E626-1E95-4a89-A0E9-C1AD03C51B12""`
         ""-dIIsAppPoolComponentId=D9138380-19B3-4123-9E22-AB2994B1024B""`
         ""-dIIsWithAppPoolSettingsComponentId=02ca3f08-a1e8-48a3-b4d7-6f5f67c61b96""`
         ""-dIIsWithoutAppPoolSettingsComponentId=d97791b0-f597-46c6-b159-541817527453""`
         ""-ext "".\Build\WixWeb\bin\WixIIsExtension.dll""""`
         ""-ext "".\Build\WixWeb\bin\WixUIExtension.dll""""`
         "".\Build\WixWeb\Shell.wxs""`
         "".\Build\stage\WebContent.wxs"" "

}
Était-ce utile?

La solution

Essayez de remplacer vos guillemets internes avec des guillemets simples, comme ceci:

.\Build\WixWeb\bin\Candle.exe " ""-dProductName=Foo"" `
     ""-dVersion=1.0.0.0"" `
     ""-dProductID=0cd64670-5769-4e34-8b21-c6242e7ca5a2"" `
     ""-dUpgradeCode=307601e9-4eea-4b5c-938a-354115d5c419"" `
     ""-dAppPool=FooAppPool"" `
     ""-dInstallDirectory=Foo"" `
     ""-dWebAppDirectoryComponentId=CF57E626-1E95-4a89-A0E9-C1AD03C51B12"" `
     ""-dIIsAppPoolComponentId=D9138380-19B3-4123-9E22-AB2994B1024B"" `
     ""-dIIsWithAppPoolSettingsComponentId=02ca3f08-a1e8-48a3-b4d7-6f5f67c61b96"" `
     ""-dIIsWithoutAppPoolSettingsComponentId=d97791b0-f597-46c6-b159-541817527453"" `
     ""-ext '.\Build\WixWeb\bin\WixIIsExtension.dll'"" `
     ""-ext '.\Build\WixWeb\bin\WixUIExtension.dll'"" `
     "".\Build\WixWeb\Shell.wxs"" `
     "".\Build\stage\WebContent.wxs"" "

Futhermore, vous trouverez peut-être plus facile si vous échappez vos guillemets doubles en utilisant correctement ` » (backtick suivi par guillemet) L'exemple de code le script pourrait être plus robuste aussi deviendrait alors:.

.\Build\WixWeb\bin\Candle.exe " `"-dProductName=Foo`" `
 `"-dVersion=1.0.0.0`" `
 `"-dProductID=0cd64670-5769-4e34-8b21-c6242e7ca5a2`" `
 `"-dUpgradeCode=307601e9-4eea-4b5c-938a-354115d5c419`" `
 `"-dAppPool=FooAppPool`" `
 `"-dInstallDirectory=Foo`" `
 `"-dWebAppDirectoryComponentId=CF57E626-1E95-4a89-A0E9-C1AD03C51B12`" `
 `"-dIIsAppPoolComponentId=D9138380-19B3-4123-9E22-AB2994B1024B`" `
 `"-dIIsWithAppPoolSettingsComponentId=02ca3f08-a1e8-48a3-b4d7-6f5f67c61b96`" `
 `"-dIIsWithoutAppPoolSettingsComponentId=d97791b0-f597-46c6-b159-541817527453`" `
 `"-ext '.\Build\WixWeb\bin\WixIIsExtension.dll'`" `
 `"-ext '.\Build\WixWeb\bin\WixUIExtension.dll'`" `
 `".\Build\WixWeb\Shell.wxs`" `
 `".\Build\stage\WebContent.wxs`" "

YMMV, cependant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top