VS2010 C ++ / CLI项目总是认为VS2012 C#项目已经过时了

时间:2014-06-02 14:21:34

标签: c# visual-studio-2010 visual-studio-2012 c++-cli

我有一个VS2012解决方案,其VS2010 C ++ / CLI项目取决于VS2012 C#项目。当我构建C ++ / CLI项目时,总是构建C#项目,即使没有对其进行任何更改

使用here方法查看DbgView输出,我看到以下消息:

  

项目'H:\ Workspaces \ xxxx \ ProjectA \ ProjectA.vcxproj'不是最新的   因为'H:\ WORKSPACES \ xxxx \ ProjectB \ BIN \ X86 \ DEBUG \ ProjectB.DLL'是   修改于06/02/2014 13:05:30,比新的更新   'H:\ Workspaces \ xxxx \ ProjectA \ bin \ Debug \ ProjectA.lib'是   修改于06/02/2014 13:05:29。

其中:

  • ProjectA是VS2010 C ++ / CLI项目
  • ProjectB是VS2012 C#项目

在Common Properties> Framework and References下,我有以下设置:

  • 复制本地错误
  • 复制本地卫星装配错误
  • 参考装配输出 True
  • 链接库依赖关系 True
  • 使用库依赖关系输入错误

是什么导致DLL和LIB文件具有不同的时间戳?我可以在设置中更改任何内容以防止此情况发生吗?

2 个答案:

答案 0 :(得分:3)

  

项目'H:\ Workspaces \ xxxx \ ProjectA \ ProjectA.vcxproj'不是最新的

这就解释了为什么要重建C ++ / CLI项目的原因。与您的C#项目没有任何关系。当然,它正在重建,它的依赖性发生了变化。

您尚未找到重建C#项目的触发器。回头看。

请避免这些过时的C ++构建日志记录攻击。无论如何,这不是你的C ++项目。倾向于将MSBuild详细信息更改为Detailed。工具+选项,项目和解决方案,构建和运行。并专注于输出,向您展示 C#项目需要重建的原因,这就是您关心的那个。

答案 1 :(得分:0)

  1. 不是直接解决方案,而是紧随其后的第二个问题。尝试从Redgate安装.NET Demon。
  2. 您是否在ProjectB中设置了预构建事件?这也可能导致此错误。
  3. 如果您知道自己不会更改ProjectB,或者您知道更改很少,那么您可以尝试将其从构建中移除到解决方案的属性中。
  4. 这有帮助吗?