Преобразование .exe проекта в библиотеку классов - PullRequest
19 голосов
/ 15 декабря 2011

У меня есть небольшой проект C # .exe в Visual Studio 2010 Ultimate, и я хочу преобразовать его в библиотеку классов DLL.Есть ли простой способ сделать это, не включая создание нового проекта библиотеки классов?Заранее спасибо.

Ответы [ 3 ]

33 голосов
/ 15 декабря 2011

Проект> Свойства> вкладка Приложения, измените Тип вывода на «Библиотека классов».

Для справки, это на самом деле не обязательно. EXE-проект прекрасно работает как ссылка на сборку. Предполагая, что классы были объявлены общедоступными, вам, возможно, придется что-то исправить, чтобы заставить их работать в библиотеке.

6 голосов
/ 15 декабря 2011

В .NET файлы .exe и .dll допустимы как ссылки. Это потому, что в .NET существует два типа сборок:

  1. сборки процессов - общедоступные как исполняемые файлы или exe
  2. библиотечные сборки - известные как dll

Сборка в .NET содержит много модулей, которые в свою очередь содержат один или несколько классов (руководство - один класс на модуль). Эти модули превращаются в код IL во время компиляции и JIT'd во время выполнения. Важной частью для обоих типов сборок является то, что каждая сборка содержит метаданные типа

  1. модули
  2. Методы
  3. типа

существует в сборке. И поэтому среда выполнения и компилятор могут легко определить, как fx вызвать определенный метод в сборке процесса.

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

2 голосов
/ 15 декабря 2011

Зайдите в «Мой проект» в своем решении, выберите вкладку «Приложение» и измените тип приложения на «Библиотека классов».

...