Wpf 项目包含XAML文件时的两个生成步骤:Visual Studio vs MSBuild

Wpf 项目包含XAML文件时的两个生成步骤:Visual Studio vs MSBuild,wpf,msbuild,visual-studio-2015,msbuild-task,msbuildcommunitytasks,Wpf,Msbuild,Visual Studio 2015,Msbuild Task,Msbuildcommunitytasks,有一个输出类型为类库的项目,它包含WPF控件。AssemblyInfo.cs应在编译之前生成,为此,我在.csproj文件末尾导入了下一个目标(使用MSBuild.Community.Tasks): <Target Name="BeforeCompile"> <AssemblyInfo CodeLanguage="CS" OutputFile="Properties\AssemblyInfo.cs" AssemblyCompany="..

有一个输出类型为类库的项目,它包含WPF控件。AssemblyInfo.cs应在编译之前生成,为此,我在
.csproj
文件末尾导入了下一个目标(使用MSBuild.Community.Tasks):

<Target Name="BeforeCompile">
    <AssemblyInfo CodeLanguage="CS"
        OutputFile="Properties\AssemblyInfo.cs"
        AssemblyCompany="..."
        AssemblyCopyright="..."
        ComVisible="false"
        AssemblyVersion="..."
        AssemblyFileVersion="..."  />
</Target>
我的热修复程序:是以不同的方式命名上述目标(生成AssemblyInfo),比如说“GenerateAssemblyInfo”,并在项目文件中以这种方式调用它,然后再执行所有生成操作:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="GenerateAssemblyInfo;Build" xmlns="...">

我猜这是因为当存在
xaml
文件时,它们需要编译成
baml
(这就是为什么en2zf2n0.tmp_proj中出现错误的原因,请参见上文),并且只有在“真正的”构建发生之后
BeforeCompile
发生在这两个步骤之间,在第一个步骤之前需要AssemblyInfo,但并没有这样的功能

问题:使用VisualStudio构建与使用MSBuild构建此案例有什么区别,是否有任何适当(更适当)的方法来解决此问题

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="GenerateAssemblyInfo;Build" xmlns="...">