Если я добавлю открытый метод в класс C #, нужно ли мне перекомпилировать другие сборки с использованием этого типа? - PullRequest
3 голосов
/ 20 мая 2010

Вопрос в названии.

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

Ответы [ 3 ]

6 голосов
/ 20 мая 2010

Нет.

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

1 голос
/ 20 мая 2010

В большинстве случаев ответ Томаса правильный, но в некоторых случаях он неверен:

  1. При использовании строгого именования (подписи) изменение одного символа приводит к новой подписи, что приводит к новому строгому имени.
  2. Установка в вашем проекте ссылок для вашей сборки для свойства Определенная версия в true и изменение номера версии вручную или автоматически в AssemblyInfo.cs
0 голосов
/ 20 мая 2010

Нет. Все остальные сборки будут автоматически работать с недавно обновленной библиотекой.

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