Visual Studio 2008: создание единственного DLL из решения со многими проектами

ДА, но только для команд разработчика, где размер> 0

, Когда я закрыл своего редактора/независимо от того, что IDE/текста и возвращаюсь на следующий день, чтобы понять, что я хочу отменить, может продлиться глупую ошибку, Управление исходным кодом там для меня, чтобы возвратиться, или использовать, чтобы перейти и выполнить некоторый дикий эксперимент на моем коде. Без управления исходным кодом я не могу сделать этих вещей так свободно.

Для команд размера> 1 у Вас есть центральное резервное копирование, у Вас есть команда широкая отмена, это легче (возможный) работать распределенное, который, когда размер команды превышает 1, является действительно, что Вы делаете так или иначе, неважно, как далеко далеко Ваши помощники команды.

9
задан Peter Mortensen 15 January 2010 в 19:30
поделиться

3 ответа

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

Например:
Объединение сборок .NET с помощью ILMerge

7
ответ дан 4 December 2019 в 08:15
поделиться
2
ответ дан 4 December 2019 в 08:15
поделиться

Для каждого из ваших проектов создайте сетевой модуль или сборку и скомпилируйте / объедините их все в одну сборку.

Первая альтернатива. Это было предложено Джеем Р. Реном :

Это симпатичный хакер, но оба CSC и VBC поддерживают / target: module и / addmodule , вы могли бы сделать это без ILMerge, просто используя сценарий оболочки или файл make.

Visual Studio не поддерживает тип «netmodule», но MSBuild поддерживает.

Добавьте проект VB в свое решение. . Выгрузите проект и отредактируйте файл проекта.

Измените OutputType на module:

<OutputType>module</OutputType>

Вместо добавления ссылки на желаемый проект мы добавляем модуль. К сожалению, здесь снова VStudio терпит неудачу, но MSBUILD работает нормально. Выгрузите проект и отредактируйте файл проекта. Добавьте группу элементов с помощью директив AddModules include.

<ItemGroup><AddModules Include="..\VbXml\bin\Debug\VbXml.netmodule" /></ItemGroup>

Это скажет msbuild указать CSC использовать директивы / addmodule , точно так же, как эталонная группа элементов, которой Studio управляет.

Главный недостаток: нет Visual Studio Intellisense для добавленного модуля. У нас уже есть ссылки, жаль, что у нас нет модулей. [ОБНОВЛЕНИЕ: как указано в другом месте @ Ark-kun , Visual Studio может ссылаться на проекты .netmodule и иметь Intellisense. Просто добавьте ссылку на проект ПЕРЕД изменением типа вывода.]

SharpDevelop имеет первый шаг, но второй шаг, графический интерфейс «Добавить модуль», был открыт как элемент с низким приоритетом, начиная с SD 2.0.

Второй способ. Эта отличная статья (Скотт Хансельман) описывает, как автоматически преобразовывать сборки, если вы: повторно используя Visual Studio. Он действительно предоставляет вам поддержку IntelliSense , в отличие от первой альтернативы .

Третий способ. Сделайте это вручную с помощью scs.
Пример создания нескольких модулей и связывания темы в одну dll:

csc /t:module RarelyUsedTypes.cs
csc /out:AllTypes.dll /t:library /addmodule:RarelyUsedTypes.netmodule AllTypes.cs

Для получения дополнительной информации см. Книгу Рихтера CLR через C # .

17
ответ дан 4 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: