Простая встроенная задача 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. Кто-нибудь может объяснить почему?