新問的問題 - >MSBuild中的XPath(SDC)和WIX
我有一個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 ...-->
我的問題是SDC任務似乎無法引用任何屬於維克斯相關的XML節點。例如:
<XmlFile.SetAttribute Path="$(MSBuildProjectDirectory)\TestProduct.wxs"
XPath="//iis:WebApplication" Namespaces="@(Namespaces)"
Name="Name" Value="$(VersionTag)"/>
作品就好了,因爲它不使用任何維克斯節點(只是一個IIS之一),但如果我使用完整的XPath路徑它(/維克斯/產品/ IIS:WebApplication的)任務回報: 找不到資源字符串發現XPath表達式
沒有比賽這不是一個問題,直到我想引用一個目錄節點(/維克斯/產品/目錄/目錄/目錄/目錄[@ Id ='STWebSiteDir'])
I嘗試使用完整的XPath和更短的目錄[@ 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>
我甚至想先手/維克斯/產品的參考,甚至失敗:
<XmlFile.SetAttribute Path="$(MSBuildProjectDirectory)\TestProduct.wxs"
XPath="/Wix/Product" Namespaces="@(Namespaces)"
Name="Name" Value="MODIFIED"/>
我清楚地失去了一些東西。任何人有什麼暗示去哪裏去得到這個工作?
Vaccano
如果您的XPath引擎是standar抱怨,這是常見問題解答:沒有前綴的QName測試選擇null(或空)名稱空間URI中的元素,而不是默認名稱空間中的元素。因此,您需要註冊命名空間URI和前綴綁定,並將此前綴添加到您的路徑中,即:'/ wi:Wix/wi:Product' – 2010-11-24 21:11:33