我写了一个小程序来下载所有NuGet包以获得解决方案。我想设置一个预构建事件,每次构建时都会运行该程序。
但我需要它在第一个项目开始构建之前运行。我可以先看看当前正在构建的内容,并将其放在该项目的预构建事件上,但这是相当脆弱的。每当我添加一个新项目或更新项目之间的引用时,我都要仔细检查“第一个”建筑项目是否仍然是第一个。
所以,我真正需要的是在任何建筑真正开始之前做到这一点。我听说过Visual Studio宏。但是那些不是被检查的东西所以我宁愿不使用那些(但如果这是我唯一的选择,我会使用它们。)
答案 0 :(得分:1)
你可以试试这个:http://sedodream.com/2010/10/22/MSBuildExtendingTheSolutionBuild.aspx
不幸的是,它只能通过MSBuild从命令行调用。似乎是行为不同的设计缺陷,并且这些事件无法通过IDE获得。
您还可以修改基本MSBuild任务以包含基于特定标志/文件存在/解决方案名称的操作,但这是各种各样的恶意。
否则,您在每个项目上都非常坚持预建。
答案 1 :(得分:0)
我为prebuild事件调用nuget install用于任何使用nuget包的项目。它足够聪明,只能下载尚未下载的软件包。