Как добавить сборку взаимодействия, которая меняет номер версии? - PullRequest
2 голосов
/ 20 декабря 2010

Моя программа на C # использует компонент COM через сборку взаимодействия.Компонент COM иногда изменяется (методы добавляются в конце интерфейса). Мне нужно собрать эту программу в автоматизированной сборке, и сборка взаимодействия должна увеличивать свой номер версии - этого можно добиться с помощью tlbimp в качестве шага перед сборкой.

Проблема в том, чтоссылка в файле проекта установлена ​​на определенную версию (скажем, 4.0.0.34) - ту, которая была у сборки взаимодействия при добавлении ссылки.После увеличения числа с помощью автоматической сборки и выполнения этапа предварительной сборки хранилище номеров версий в файле проекта больше не совпадает с номером в свойствах сборки, и я получаю предупреждение

MSB3245: возможноне разрешить эту ссылку.Не удалось найти сборку "Interop.MyCOMComponent, Culture = нейтральный, версия = 4.0.0.34, processorArchitecture = MSIL".Убедитесь, что сборка существует на диске.Если эта ссылка требуется вашим кодом, вы можете получить ошибки компиляции.

, а затем

Имя типа или пространства имен 'MyCOMComponent' не найдено (выотсутствует директива using или ссылка на сборку?)

Могу ли я как-то сказать Visual Studio, что я не хочу хранить точную версию сборки в файле проекта, и она должна использовать любую версию, которую видит ввремя компиляции?

Ответы [ 2 ]

1 голос
/ 17 января 2011

Для меня сработало удаление ссылки «COM» и добавление ссылки в сборку взаимодействия, как если бы это была обычная ссылка «.NET». Поскольку последний не хранит номер версии, проблема была решена раз и навсегда.

1 голос
/ 05 января 2011

Я считаю, что в файле .csproj вы найдете атрибут с именем SpecificVersion, в элементе Reference.

Удаление этого атрибута может иметь эффект, который вы ищете.

...