我在我的 .csproj 文件中添加了一个“BeforeClean”和一个“AfterClean”目标,最初旨在删除正常构建路径之外位置的一些构建工件。
当我对项目进行“清理”时,我可以看出文件没有被删除;所以我简化了动作,只是吐出一条消息。像删除命令一样,消息命令没有被调用(我希望在“输出”窗口中看到消息)。
我可以在网上找到的唯一相关建议是确保在导入 Microsoft.CSharp.targets 文件后进行目标定义。我包含了我的 .csproj 文件的剪辑,其中包含足够的详细信息,以显示我的目标 def 相对于导入的位置。
据我所知,我做的一切都是正确的;为什么我的目标不会被调用?
提前致谢。
[更新和仅供参考:将重要性从“正常”更改为“高”时,我能够让目标开火。]
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
<Target Name="BeforeClean">
<Message Text="Hello Clean World!" Importance="normal" ContinueOnError="true"/>
</Target>
<Target Name="AfterClean">
<Message Text="Goodbye Clean World!" Importance="normal" ContinueOnError="true"/>
</Target>
</Project>