Package.appxmanifest(XML)的错误XPath

时间:2016-03-12 18:37:54

标签: .net xml xpath msbuild msbuildcommunitytasks

我需要在应用构建过程中更改我的应用清单,并尝试使用MSBuildCommunityTasks。定位我使用的样子:

 <XmlUpdate
        Namespace=""
        XmlFileName="$(ManifestFile)"
        XPath="//Identity[@Version]/@Version"
        Value="$(App_Version).$(Revision)"/>

但是当构建过程开始时,我只得到这个:

Updating Xml Document "Package.appxmanifest". 0 node(s) selected for update.

我的XPath错了。我尝试使用XPath实时验证器,但我无法为此文件选择正确的XPath表达式,我需要一些帮助。

我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest" xmlns:m3="http://schemas.microsoft.com/appx/2014/manifest" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest">
  <Identity Name="1234567890" Publisher="12345678" Version="9.9.9.999" />
  <mp:PhoneIdentity PhoneProductId="123456789" PhonePublisherId="1234567890" />
  <Properties>
    <DisplayName>Name</DisplayName>
    <PublisherDisplayName>PlaceHolder</PublisherDisplayName>
    <Logo>Assets\StoreLogo.png</Logo>
  </Properties>
  <Prerequisites>
    <OSMinVersion>6.3.1</OSMinVersion>
    <OSMaxVersionTested>6.3.1</OSMaxVersionTested>
  </Prerequisites>
  <Resources>
    <Resource Language="x-generate" />
  </Resources>
  <Applications>
    <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="DT.PlaceHolder.WP.App">
      <m3:VisualElements DisplayName="PlaceHolder" Square150x150Logo="Assets\Logo.png" Square44x44Logo="Assets\SmallLogo.png" Description="PlaceHolder" ForegroundText="light" BackgroundColor="transparent">
        <m3:DefaultTile Wide310x150Logo="Assets\WideLogo.png" Square71x71Logo="Assets\Square71x71Logo.png"></m3:DefaultTile>
        <m3:SplashScreen Image="Assets\SplashScreen.png" />
      </m3:VisualElements>
    </Application>
  </Applications>
  <Capabilities>
    <Capability Name="internetClientServer" />
    <DeviceCapability Name="location" />
  </Capabilities>
</Package>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。这对我有用:

<XmlUpdate
        Namespace=""
        XmlFileName="$(ManifestFile)"
        XPath="//*[local-name()='Identity']/@Version"
        Value="$(App_Version).$(Revision)"/>