Автоматическая перезагрузка ссылочной сборки взаимодействия COM, когда она перестраивается - PullRequest
1 голос
/ 03 августа 2010

У меня есть решение Visual Studio 2008, которое имеет следующие проекты:

  • библиотека C ++ / ATL COM
  • библиотека C #, использующая библиотеку COM
  • библиотека модульных тестов C # (с использованием MSTest), которая ссылается на две другие библиотеки

В проекте библиотеки C ++ COM есть Custom Build Step, который создает библиотеку взаимодействия .NET, которая выглядит следующим образом:

tlbimp /asmversion:1.1.0.0 "$(TargetPath)" /out:"c:\Libraries\MyProject.Interop.dll"

Затем ссылка на библиотеку C # и библиотеку модульных тестов C # c:\Libraries\MyProject.Interop.dll.

Моя проблема заключается в том, что при внесении изменений в IDL в библиотеке COM, библиотеке и библиотеке взаимодействияполучить заново, но в проектах C # все еще есть копии старых библиотек взаимодействия, которые лежат в своих выходных каталогах, и они не обновляются.Мне нужно вручную удалить эти старые библиотеки, чтобы новая была распознана.

Я почти могу заставить это работать, установив для свойства Копировать локальное для ссылки в проектах C # значение False.Но затем у меня возникают проблемы с запуском модульных тестов, поскольку библиотека взаимодействия не копируется в место развертывания теста.

Я могу взломать эту проблему, добавив дополнительные пользовательские шаги сборки для удаления и / или копирования библиотек вокругили с помощью развертывания модульного теста, но есть ли какой-нибудь простой способ заставить Visual Studio просто использовать обновленную библиотеку взаимодействия везде, где она меняется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...