当C ++依赖项更改时,Visual Studio 2012不构建C#项目

时间:2013-01-26 00:44:29

标签: visual-studio-2012

我的解决方案中有三个项目:一个名为LibX的C ++项目,一个名为LibX.NET的C#项目,它使用P / Invoke包装LibX.dll,以及一个名为TestX的C#WPF应用程序。

LibX.NET被标记为依赖于LibX,并且TestX将LibX.dll复制到其输出目录作为构建后步骤的一部分(因为我想不出更好的方法来确保TestX可以使用LibX。 DLL)。

在VS2010中,当我在LibX和build中更改文件时,LibX.NET和TestX都已构建,因此它们的构建后事件会触发,所有内容都是最新的。

但是,在VS2012中,当我在LibX中更改文件时,VS不构建LibX.NET和TestX,声称它们是“最新的”。这是VS2012中的错误/回归,还是故意的?如何让TestX运行其构建后步骤?

1 个答案:

答案 0 :(得分:0)

如果您希望LibX中的更改触发LibX.Net中的构建,您需要撤消这两个项目之间的项目依赖性。

由于您已标记LibX.Net依赖于LibX,因此您需要编译LiX.Net以构建两个项目。当您这样做时,将根据是否进行了更改来编译/跳过这两个项目。这与VS2010中的行为相同。