Каково влияние добавления ссылки на скомпилированный код? - PullRequest
0 голосов
/ 19 сентября 2011

Когда я добавляю ссылку на файл .dll, что изменяется в скомпилированном выводе проекта?

(Только представьте, что я добавил ссылку и перестроил.)

Ответы [ 2 ]

2 голосов
/ 19 сентября 2011

Если это просто ссылка (и при условии, что dll - это сборка) - вообще ничего;неиспользуемые ссылки незаметно отбрасываются компилятором, и в вашем сценарии вы не добавили никакого кода, который использует сборку (т.е. некоторый код, который использует типы из новой библиотеки DLL).Заметьте, что я делаю здесь незначительное предположение, что в новой dll (в пространствах имен, которые уже использовались) не было методов расширения, которые обеспечивали бы лучшее соответствие существующим методам расширения.

Если вы пометили ссылку на Copy Local = True, то в выходном каталоге вы получите дополнительную dll (но внутренне ваша сборка будет не формально ссылаться на нее - эта ссылка по-прежнему отбрасывается, если ваш код нене трогайте сборку).

2 голосов
/ 19 сентября 2011

Манифест запишет ссылку на файл .dll - если он не используется, компилятор удалит ссылку в скомпилированном манифесте.Таким образом, в данном случае это никак не повлияет.

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

Если это не сборка .NET, а com / com + dll, будет также создана оболочка.

Ничто не должно измениться в отношении MSIL-части скомпилированной сборки.

...