VS2005在.cpp文件中的实现细节更改上重建.NET / CLI项目

时间:2010-02-11 10:47:52

标签: .net c++-cli dependencies rebuild

我的解决方案包含多个本机,C ++ / CLI包装器和托管库/程序集。包装器项目引用了不同的本机DLL项目。每次我更改本机依赖项的.cpp文件中的实现细节时,都会重建所有CLI / .NET项目(不仅仅是链接,而是重新编译)。这也发生在Debug配置中(没有Whole-Programm Optimization ..)。这种行为有什么理由吗?由于解决方案非常庞大,重建需要很多时间,因此如果VS能够避免任何不必要的重建,那将会很好。

1 个答案:

答案 0 :(得分:1)

这是预期的行为。 .NET程序集“依赖”非托管DLL,当DLL更改时,它们检测到并重新构建。非托管C ++项目的编译单元是.cpp文件。 .NET程序集的编译单元是整个程序集。没有办法只重新编译一个.cs(或托管c ++)文件。

你可以通过使用:: GetProcAddress()获取非托管DLL中的操作的函数指针来解决这个问题。然后,您可以删除.NET程序集对非托管DLL的.lib文件的依赖性,并且每次.lib更改时都不再重新编译。