Определите язык и компилятор, использованный для создания сборки? - PullRequest
0 голосов
/ 31 июля 2010

Я хотел бы указать язык (C #, VB и т. Д.), Используемый для создания конкретной сборки.

Я также хотел бы определить компилятор (MS, моно).

Кажется, в сборке нет никакой информации. В разделе о заголовках сборки в разделе II Ecma-335 ничего полезного не упоминается.

Интересно, есть ли в сборке отпечатки пальцев, которые могли бы показать, что "ага, это что-то особенное для C # / компилятора c #, вы написаны на C #!"

Это было бы полезно знать для инструмента статического анализа, который я пишу.

1 Ответ

1 голос
/ 31 июля 2010

Это сборка, в которой хранятся метаданные и IL, информация, не зависящая от языка.Так что вы можете легко смешивать и сочетать код, написанный на разных языках.Очень хорошая особенность .NET.

Хотя есть подсказки.Программист VB.NET может использовать специальные языковые функции VB.NET, которые реализованы в виде вспомогательной сборки в .NET Framework.Например, пространство имен My и операторы преобразования, например CType.Откройте сборку с помощью Ildasm.exe и посмотрите на манифест для директив .assembly.Если вы видите один для Microsoft.VisualBasic, то шансы очень высоки, что это было написано в VB.NET.Если он отсутствует, то хорошие шансы для C #, хотя и не окончательные.Если вы посмотрите на список классов и увидите <CppImplementationDetails> в верхней части, то вы наверняка знаете, что оно было написано на C ++ / CLI.

Убедитесь, что вас это не волнует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...