Почему структура папок GAC не документирована? - PullRequest
0 голосов
/ 02 ноября 2019

Почему структура папок GAC не документирована?

Я читаю CLR через C # книгу, и в книге говорится, что:

Причина, по которой CSC.exe не ищет в GAC ссылки на сборки, заключается в том, что вам нужно знать путь к файлу сборки, а структура GAC не документирована.

Iне могу понять, что мешает создавать правила и документировать их для структуры папок GAC.

ОБНОВЛЕНИЕ В комментариях было высказано предположение, что может быть техническая проблема, котораяне позволяет реализовать правила для структуры папок. Но я могу доказать, что это не так, приведя пример возможного правила:

1 GAC может содержать только строго именованные сборки. 2 По определению, сборка со строгим именем - это сборка, которая имеет имя, номер версии, культуру и маркер открытого ключа (на самом деле открытый ключ, но мы можем использовать токен для простоты, поскольку открытый ключ слишком длинный). 1 2 -> 3 Каждая сборка может быть уникально идентифицирована по имени, версии, культуре и токену открытого ключа. 3 -> 4 Если мы воспользуемся следующим правилом структуры папок, мы выполним начальную задачу по предоставлению желаемого правила структуры папок: [имя] / [версия] / [культура] / [маркер открытого ключа] / [сама сборка]

Я что-то здесь упускаю?

1 Ответ

1 голос
/ 03 ноября 2019

Исходные стандартные документы .NET только определяют функциональные возможности GAC, но не ограничивают его реализацию. Следовательно,

  • .NET Framework 2.x / 3.x имеет начальную реализацию.
  • .NET Framework 4.x использует другую реализацию.
  • Другоереализации, такие как Mono, используют свои собственные структуры.

Самое важное, что .NET Core даже не имеет GAC.

В результате компилятор C # не может полагаться на реализацию GAC в качестве алгоритма поиска ссылок. .

...