Sunday, 23 February 2014

Многофайловые сборки в .NET

В книге Джеффри Рихтера "CLR via C#" второго издания эта тема раскрыта достаточно полно, но мне потребовалась небольшая практика, чтобы изложенное окончательно запомнить.
В следующей статье на MSDN азы создания многофайловых сборок описаны достаточно подробно:

http://msdn.microsoft.com/ru-ru/library/226t7yxe(v=vs.110).aspx

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

В пользу редкости такого решения говорит хотя бы тот факт, что даже в новых версиях (2013)Visual Studio многофайловые сборки не поддерживаются, их можно создать только пользуясь компилятором и специальными ключами командной строки.

Итак, попробуем создать многомодульную сборку.
Для начала создаю проект в двенадцатой студии – обычное консольное приложение с одним классом Karcher, у которого один метод Wash():


Теперь компилируем класс Karcher в модуль с помощью csc.exe:

csc.exe /t:module Karcher.cs

На выходе получаем модуль Karcher.netmodule

Дальше компилируем файл программы, указывая в параметрах компилятора только что созданный модуль:

csc.exe /out:MultiFileAssembly.dll /t:library /addmodule:Karcher.netmodule Program.cs

Получаем сборку в виде dll, под которую надо подложить модуль с Кёрхером, чтобы всё работало.


No comments:

Post a Comment