Именование основной сборки (.exe), чтобы избежать длинного имени файла: Company.Product.Application.exe - PullRequest
3 голосов
/ 25 мая 2011

Фон

При создании общих библиотек классов я отражаю структуру имен Microsoft .NET Framework, заменяя System на собственное название компании, т.е. Tek4.Net.NetworkWidget.

Для сборок для конкретного продукта я использую что-то вроде Tek4.ProductName.IO.FileWriter.

Выводим имена файлов .exe слишком длинные !!! Company.Product.SuperApp.exe

Visual Studio использует полное имя сборки для выходных файлов; это отлично подходит для DLL, но слишком много для консольного приложения - т.е. Tek4.Utils.ConsoleApp.exe

Решение 1: (НЕ ПРЕДПОЧТИТЕЛЬНО)

Forego иерархические имена для основных исполняемых сборок:

  • Имя сборки: ConsoleApp
  • EXE Имя файла: ConsoleApp.exe

Это решение означает, что ваши поставленные файлы .exe будут содержать только простое имя сборки, которое не может хорошо идентифицировать себя, и гораздо более подвержено конфликтам имен с другими сборками. Следы стека, .NET Reflector и т. Д. Будут отображать только ConsoleApp вместо полного имени сборки.

Решение 2: (МОЙ ТЕКУЩИЙ ВЫБОР)

Переименование выходного файла после компиляции с сохранением полного имени внутренней сборки (с использованием события после сборки или ручного переименования):

  • Имя сборки: Tek4.Utilities.ConsoleApp
  • EXE Имя файла: Tek4.Utilities.ConsoleApp.exe -> ConsoleApp.exe

При таком решении конфликт имен маловероятен, и где бы ни отображалось имя сборки (т. Е. Следы стека, журналы системных событий и т. Д.), Источник легко идентифицировать.

По какой-то причине я до сих пор ненавижу неуклюжее ручное переименование.

Ваши решения и практики?

Большое спасибо.

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Я бы также использовал более короткое имя исполняемого файла, особенно если его предполагается использовать из командной строки.

Сказав это, то, что я видел довольно часто, является следующим соглашением, если у вас есть версия GUI и версия командной строки вашего приложения:

GUI: SuperApp.exe CLI: SuperApp.Console.exe

FWIW

1 голос
/ 25 мая 2011

Моя практика такая же, как у вас. И да, я бы использовал короткий SuperApp.exe для основного исполняемого файла. И эй, если клиент видит следы стека, что-то пошло не так. Так что он лучше не видит название вашей компании;)

0 голосов
/ 25 мая 2011

Просто простое предложение:

YourCompany.YourProduct.Gui
YourCompany.YourProduct.Gui.Controllers

и вы получите идею.

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