Wpf 项目包含XAML文件时的两个生成步骤:Visual Studio vs MSBuild
有一个输出类型为类库的项目,它包含WPF控件。AssemblyInfo.cs应在编译之前生成,为此,我在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="..
.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="...">