4

我编写了一个小程序来下载所有 NuGet 包以获得解决方案。我想设置一个预构建事件,每次构建时都会运行该程序。

但我需要它在第一个项目开始构建之前运行。我可以先查看当前正在构建的内容,然后将其放在该项目的预构建事件中,但这相当脆弱。每当我添加新项目或更新项目之间的引用时,我都必须仔细检查“第一个”构建项目是否仍然是第一个。

所以,我真正需要的是在任何建筑物真正开始之前做到这一点的方法。我听说过 Visual Studio 宏。但这些不是可以签入的东西,所以我宁愿不使用它们(但如果这是我唯一的选择,我会使用它们)。

4

2 回答 2

1

你可以试试这个:http ://sedodream.com/2010/10/22/MSBuildExtendingTheSolutionBuild.aspx

不幸的是,它只能通过 MSBuild 从命令行调用。似乎是行为不同的设计缺陷,并且这些事件无法通过 IDE 获得。

您还可以修改您的基本 MSBuild 任务以包含基于特定标志/文件存在/解决方案名称的操作,但这是各种邪恶。

否则,您将非常受困于每个项目的预构建。

于 2011-08-14T22:32:17.177 回答
0

对于任何使用 nuget 包的项目,我都会从 prebuild 事件中调用 nuget install。仅下载尚未下载的软件包是足够聪明的。

于 2011-08-11T17:34:27.380 回答