У меня есть решение Visual Studio 2008 с двумя проектами в нем. C++ DLL и приложение Csharp.Visual Studio (2008) смешанные режимы проекта. C-sharp проект зависит от C++ dll, но C++ dll не перестраивается
Приложение Csharp использует [DllImport] для доступа к функциям в DLL и имеет зависимость, установленную в DLL.
По какой-то причине установить зависимость недостаточно, чтобы заставить VS копировать DLL в путь сборки приложения. Таким образом, проект приложения имеет событие post-build, которое вызывает копирование DLL. (Если кто-нибудь знает более чистый способ сделать это, сообщите мне об этом!)
Проблема заключается в том, что когда я вношу изменения в код DLL, попробуйте запустить приложение Csharp в отладчике VS2008 не понимает, что DLL необходимо перестроить (и повторно скопировать).
Мне нужно принудительно выполнить повторное построение приложения Csharp (т. Е. Явно выбрать сборку или «прикоснуться» к файлу .CS).
Кто-нибудь знает, как заставить Visual Studio делать правильные вещи? Спасибо, Роб
правок: Я утра с использованием зависимостей проекта. Они работают неправильно.
I am, используя событие после сборки, чтобы скопировать DLL через.
Вопрос заключается в том, что, если вы просто выбрать для отладки приложения, Visual Studio не удается перекомпилировать измененный проект C++, несмотря на то, что существует зависимость в месте.
Я знаю, что зависимость работает, потому что, если я выберу «Build» (в отличие от «Debug»), будет создана C++ DLL.
Проблема очевидна, если вы попытаетесь отладить приложение Csharp. Он не понимает, что ему нужно перестроить DLL. – Rob 2008-10-24 17:39:53
Странно - я не видел этого поведения. Когда я нажал кнопку запуска и работал в режиме отладки, он заметил, что DLL нужно было перестроить. – itsmatt 2008-10-24 17:41:46