VS2005 перестраивает проекты .NET / CLI на изменениях деталей реализации в файлах .cpp - PullRequest
0 голосов
/ 11 февраля 2010

Мое решение состоит из нескольких встроенных оболочек C ++ / CLI и управляемых библиотек / сборок. Проекты-оболочки ссылаются на разные нативные DLL-проекты. Каждый раз, когда я изменяю детали реализации в файле .cpp собственной зависимости, все проекты CLI / .NET перестраиваются (не просто связаны, а перекомпилируются). Это также происходит в конфигурации отладки (без оптимизации всей программы ...). Есть ли причина для такого поведения? Поскольку решение довольно большое, перестройка занимает много времени, поэтому было бы неплохо, если бы VS избежал ненужных перестраиваний.

1 Ответ

1 голос
/ 11 февраля 2010

Это ожидаемое поведение. Сборки .NET «зависят» от неуправляемой DLL, и при изменении DLL они обнаруживают это и перестраивают. Единицей компиляции неуправляемого проекта C ++ является файл .cpp. Единица компиляции сборки .NET - это целая сборка. Нет никакого способа перекомпилировать только один файл .cs (или управляемый c ++).

Вы можете обойти это, используя :: GetProcAddress (), чтобы получить указатели функций на операции в неуправляемых библиотеках DLL. Затем вы можете удалить зависимость сборки .NET от файла .lib неуправляемых библиотек DLL, и он больше не будет перекомпилироваться каждый раз, когда изменяется .lib.

...