Простая встроенная задача MSBuild, приводящая к ошибке "Неправильный исходный файл" в проекте WIX в Visual Studio 2017

У меня есть следующая задача сборки в моем файле.wixproj установщика Wix, которая была разработана, чтобы разделить мой номер версии. Для простоты скрипт в настоящее время жестко кодирует версию "1.2.3.4"

<UsingTask 
  TaskName="GetVersionParts"
  TaskFactory="CodeTaskFactory"
  AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">

  <ParameterGroup>
    <AssemblyPath ParameterType="System.String" Required="true" />
    <BuildVerOutput ParameterType="System.String" Output="true" />
  </ParameterGroup>
  <Task>
    <Using Namespace="System.Diagnostics" />
    <Code Type="Fragment" Language="cs"><![CDATA[
        this.BuildVerOutput = "1.2.3.4";    
      ]]>
    </Code>
  </Task>
</UsingTask>

<Target Name="BeforeBuild">
    <GetAssemblyIdentity AssemblyFiles="@(AssembliesPath)">
      <Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
    </GetAssemblyIdentity>

    <GetVersionParts AssemblyPath="%(AssemblyVersion.Version)" >
      <Output TaskParameter="BuildVerOutput" PropertyName="BuildVersionNumber" />
    </GetVersionParts>

     <PropertyGroup>
      <DefineConstants>BuildVersion=%(AssemblyVersion.Version);BuildSubVersion=$(BuildVersionNumber)</DefineConstants>
    </PropertyGroup>
  </Target>

Теперь, когда я компилирую проект, я получаю следующую ошибку: "Неправильный исходный файл; данные на корневом уровне недействительны. Строка 1, postion1."

А исходный файл c:\temp.NETFramework,Version=v4.6.1.AssemblyAttributes.wxs (также соответствующий файл.cs с идентичным содержимым) имеет следующий код:

// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]

похоже, он пытается интерпретировать автоматически сгенерированный встроенный код C# как XML. Кто-нибудь может объяснить почему?

0 ответов

Другие вопросы по тегам