添加Makefile项目到Visual Studio 2015解决方案总是过时的

时间:2016-01-07 17:40:55

标签: visual-studio-2015 nmake

我有一个相当大的解决方案(80个项目)。最近我升级到VS2015U1并修改了解决方案以包含一个makefile(nmake)项目,这是所有其他项目的先决条件。目的是这个makefile应该将一些第三方软件复制到项目的bin目录中,以便更容易将各种东西放在一起进行测试和打包。

问题是,这个makefile项目似乎总是过时了。这意味着当你按F5进行测试时,我总是会弹出一个对话框。

我直到我的Google员工痛苦,包括我在stackoverflow上找到的所有内容。列出的解决方案似乎都没有帮助:

  • 此项目没有列出任何文件,因此没有任何文件已过期。 我甚至将makefile本身作为项目文件,但这并不是 救命。
  • 我在makefile项目中添加了一个假输出文件 将其包含在属性中,并使make文件创建 一个人跑的时候。
  • 我已将构建输出详细程度设置为诊断并已消失 通过.log文件广泛而没有找到任何文件的提示 那个丢失或过时的。
  • 其他项目似乎都没有重建,只有一个 makefile项目。当makefile运行时,所有内容都会出现 最新的文件将被复制。
  • 没有与新项目相关的.tlog文件。
  • 进行干净的构建或重建没有帮助,这个项目总是过时的。

有没有其他想法?

2 个答案:

答案 0 :(得分:0)

它开始出现(虽然我找不到备份的文档)所有makefile类型的项目总是过时的。

我发现一个可能的答案是你可以创建一个"实用程序"类型项目。此类项目仅具有预构建,预链接和后构建事件。然后,您可以在其中添加make / nmake命令。有副作用,但在我的情况下它是可以容忍的。

亲自尝试一下,看看你的想法,然后用你发现的东西回报这里。

答案 1 :(得分:0)

由于Visual Studio使用的MSBuild与nmake具有相同的用途,我只是用.csproj文件中的直接MSBuild项目替换nmake项目,并将其作为项目添加到我的解决方案中,使其他项目依赖于它。它不会弹出启动调试器的项目过时对话框,并且可以正确识别我想要创建的文件何时过期。

请参阅MSBuild documentation以获取有关如何指定构建目标等的参考。