سؤال

الطازجة يسأل هذا السؤال->

لدي WIX الملف الذي أنا بحاجة إلى تعديل باستخدام MSBuild.ويبدأ مثل هذا:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">

  <?--... Various Removed Params ...-->

  <Product Id='$(var.ProductCode)'
    UpgradeCode='$(var.UpgradeCode)'
    Name='$(var.AppName)' Language="1033" Version='$(var.ProductVersion)'
    Manufacturer='$(var.Manufacturer)'>
    <Package Id='$(var.PackageCode)' InstallerVersion="200" 
    Compressed="yes" />

  <?--... More of the WIX XML file ...-->

  <iis:WebApplication Id='STWebApp' Name='MyWebSite' Isolation='medium' />

  <?--... Rest of the WIX XML file ...-->

مشكلتي هي المركز المهام لا يمكن أن يبدو للإشارة إلى أي من العقد xml التي يتم WIX ذات الصلة.على سبيل المثال:

<XmlFile.SetAttribute Path="$(MSBuildProjectDirectory)\TestProduct.wxs"
         XPath="//iis:WebApplication" Namespaces="@(Namespaces)" 
         Name="Name" Value="$(VersionTag)"/>

يعمل على ما يرام لأنه لا يستخدم أي Wix العقد (فقط iis واحد), ولكن إذا كنت تستخدم كامل XPath الطريق إلى ذلك (/Wix/المنتج/iis:WebApplication) مهمة العوائد: لا يمكن أن تجد الموارد سلسلة لا يطابق تعبير XPath

هذه ليست مشكلة حتى أنا أريد أن المرجعية دليل عقدة (/Wix/المنتج/دليل/دليل/دليل/دليل[@Id='STWebSiteDir'])

لقد حاولت استخدام كامل XPath و أقصر //Directory[@Id='STWebSiteDir'].لقد حاولت واحدة ونقلت الاقتباس المزدوجة ، لقد حاولت إضافة WIX مساحة لدعوة (بدون اختصار).

<ItemGroup>
  <Namespaces Include="http://schemas.microsoft.com/wix/IIsExtension">
    <Prefix>iis</Prefix>
    <Uri>http://schemas.microsoft.com/wix/IIsExtension</Uri>
  </Namespaces>
  <Namespaces Include="http://schemas.microsoft.com/wix/2006/wi">
    <Prefix></Prefix>
    <Uri>http://schemas.microsoft.com/wix/2006/wi</Uri>
  </Namespaces>
</ItemGroup>

حتى لقد حاولت أن تحصل على مجرد الإشارة إلى /Wix/المنتج وحتى فشل ذلك:

<XmlFile.SetAttribute Path="$(MSBuildProjectDirectory)\TestProduct.wxs" 
            XPath="/Wix/Product" Namespaces="@(Namespaces)" 
            Name="Name" Value="MODIFIED"/>

أنا واضح في عداد المفقودين شيء.أي شخص مع تلميح بشأن أين تذهب للحصول على هذا العمل ؟

Vaccano

هل كانت مفيدة؟

المحلول

يمكنك فقط تحديد المتغيرات في سطر الأوامر إلى المعالج?

candle -dVariableName=ValueForVariable

قد يكون أسهل بكثير.

نصائح أخرى

هل شملت Wix مساحة اسم افتراضية في @(مساحات)?

<ItemGroup>
  <Namespaces Include="http://schemas.microsoft.com/wix/IIsExtension">
    <Prefix>iis</Prefix>
    <Uri>http://schemas.microsoft.com/wix/IIsExtension</Uri>
  </Namespaces>
  <Namespaces Include="http://schemas.microsoft.com/wix/2006/wi">
     <Prefix>wis</Prefix>
    <Uri>http://schemas.microsoft.com/wix/2006/wi</Uri>
  </Namespaces>
</ItemGroup>

يجب إضافة بادئة wi مساحة أيضا,بعد ذلك يمكن أن حسنا,لدي اختبار.

ها هو الجواب:

Namespace prefix بحاجة إلى أن تكون في عداد المفقودين على wix جزء ، ليس فقط تترك فارغة

<ItemGroup>
  <Namespaces Include="http://schemas.microsoft.com/wix/IIsExtension">
    <Prefix>iis</Prefix>
    <Uri>http://schemas.microsoft.com/wix/IIsExtension</Uri>
  </Namespaces>
  <Namespaces Include="http://schemas.microsoft.com/wix/2006/wi">

    <Uri>http://schemas.microsoft.com/wix/2006/wi</Uri>
  </Namespaces>
</ItemGroup>

ثم تحتاج إلى إضافة بادئة قيمة wix مساحة في الملف.اعتدت tst.

Vaccano

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top