Разъяснение сборки одного файла .NET - PullRequest
1 голос
/ 22 ноября 2010

В моей книге "Pro C # 2008 и платформа .NET 3.5" есть строка текста, которая сбивает меня с толку в контексте сборок с одним файлом.

В большинстве случаев существует простое взаимно однозначное соответствие между сборкой .NET и двоичным файлом (* .dll или * .exe). Таким образом, если вы собираете .NET * .dll, можно с уверенностью считать, что двоичный файл и сборка - это одно и то же. Аналогично, если вы создаете исполняемое приложение для настольного компьютера, * .exe можно просто назвать самой сборкой

-Pro C # 2008 и платформа .NET 3.5, Эндрю Троелсен

Первое предложение цитаты портит мои размышления. Я понимаю, что сборка .NET Single file представляет собой логическую группу из одного или нескольких связанных модулей, которые предназначены для первоначального развертывания и создания версий как единого модуля. В этой сборке содержатся заголовки Windows / CLR, метаданные типа, скомпилированный CIL и манифест сборки.

В контексте отдельных файловых сборок я не понимаю, что подразумевается под "однозначным соответствием между .NET-сборкой и двоичным файлом (* .dll или * .exe).

Может ли кто-нибудь уточнить указанную выше цитату?

Ответы [ 4 ]

3 голосов
/ 22 ноября 2010

Это отстойный комментарий, разработанный автором для прикрытия его задницы.Но бессмысленно, когда он не объясняет, что это значит.Ваша ментальная модель того, как работает Visual Studio, не повреждена, один проект создает одну сборку.

Но, как вы уже догадались, CLR не имеет этого требования.Сборка может быть построена из нескольких модулей.Важными компонентами являются параметр / target: module для компилятора C # и инструмент al.exe для связывания модулей в сборку.Эти параметры очень важны для Microsoft, именно так создаются сборки ядра, такие как mscorlib.dll.Душа машинного оборудования, тебе никогда не придется прилично заходить.

0 голосов
/ 22 ноября 2010

Я думаю, что он имеет в виду, что «проект веб-сайта» компилирует отдельный код за файлами в отдельные двоичные файлы, но они считаются частью одной и той же «сборки».Вы можете увидеть эти файлы во временном расположении под windows \ Microsoft .net framework

0 голосов
/ 22 ноября 2010

Я никогда не видел, чтобы сборка охватывала несколько файлов dll или exeОднако вы можете использовать ILmerge для объединения нескольких сборок в один двоичный файл.Как правило, вы увидите одну сборку DLL на пространство имен.

0 голосов
/ 22 ноября 2010

Это просто вопрос определения. Любая сборка, содержащаяся в одном двоичном файле, может называться одной файловой сборкой.

Проще говоря - сборка может содержаться в одном или нескольких двоичных файлах. Сборка, которая находится в одном двоичном файле, является сборкой одного файла.

-foredecker

...