Фон
При создании общих библиотек классов я отражаю структуру имен 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
При таком решении конфликт имен маловероятен, и где бы ни отображалось имя сборки (т. Е. Следы стека, журналы системных событий и т. Д.), Источник легко идентифицировать.
По какой-то причине я до сих пор ненавижу неуклюжее ручное переименование.
Ваши решения и практики?
Большое спасибо.