基本上,我正在尝试为整个解决方案实现一些构建前和构建后事件,而不仅仅是独立项目。我以前在这里看到过这个问题,但没有解决同样的问题。我创建了两个.targets
名为after.TestSolution.sln.targets
和的文件before.TestSolution.sln.targets.
:
前
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CreateFile" BeforeTargets="Build">
<Message Text="Creating a file" Importance="high" />
<Exec Command="C:\users\me\Desktop\CreateFiles.bat" />
</Target>
</Project>
后
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CopyFile" AfterTargets="Build">
<Message Text="Copying a File" Importance="high" />
<Exec Command="C:\users\me\Desktop\CopyFiles.bat" />
</Target>
</Project>
这些只是简单的测试批次,以查看事件是否有效。然后我从命令行通过 MSBuild 构建解决方案:这完全有效。MSBuild 在解决方案构建之前在“之前”执行代码,之后在“之后”执行代码。但是,问题是当我从 VS 构建解决方案时,批次永远不会运行。所以,我不确定这是为什么。我对 MSBuild 任务相当陌生。