0

次のxml構造をプログラムで作成したい

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <?include "mypath\Constants.wxi"?>
    <Product Id="*" Name="$(var.ProductName)" Language="$(var.ProductLanguage)" Version="$(var.ProductVersion)" Manufacturer="$(var.ProductManufacturer)" UpgradeCode="$(var.ProductUpgradeCode)">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
        <MajorUpgrade DowngradeErrorMessage="A newer vesrion of [ProductName] is already installed" />
        <UIRef Id="WixUI_Minimal" />
        <MediaTemplate />
    </Product>
</Wix>

XDocumentを使ってみた

  XDocument xmldoc = new XDocument(
        new XElement("Wix",
            new XText("<?include \"" + constantfileloc + "\"?>"),
            new XElement("Product",
              new XAttribute("Id", "*"),
              new XAttribute("Name", "$(var.ProductName)"),
              new XAttribute("Language", "$(var.ProductLanguage)"),
              new XAttribute("Version", "$(var.ProductVersion)"),
              new XAttribute("Manufacturer", "$(var.ProductManufacturer)"),
              new XAttribute("UpgradeCode", "$(var.ProductUpgradeCode)"),
              new XElement("Package",
                  new XAttribute("InstallerVersion", "200"),
                  new XAttribute("Compressed", "yes"),
                  new XAttribute("InstallScope", "perMachine")
              ),
              new XElement("MajorUpgrade",
                    new XAttribute("DowngradeErrorMessage", "A newer vesrion of [ProductName] is already installed")
              ),
              new XElement("UIRef",
                  new XAttribute("Id", "WixUI_Minimal")
              ),
              new XElement("MediaTemplate")
           )
        )
  );

問題はもちろん、要素を ? で開始できないため、<?include?/>作成できないことです。XElementだから私はそれを使うことでそれを機能させることができると思ったが、どうやらそれは my andの宣言でandをXText置き換えているようだ。<>XText&lt&gt

私も使ってみXElement.parse("<?include \"" + constantfileloc + "\"?>") ましたが、うまくいきません。

XDocumentを使用することは可能ですか? 私は本当にテキストライターを使いたくないので

4

1 に答える 1