.net - 命名主程序集 (.exe) 以避免长文件名 : Company. Product.Application.exe

标签 .net assemblies

背景

在创建通用类库时,我镜像了 Microsoft .NET Framework 名称结构,将 System 替换为我自己的公司名称——即 Tek4.Net.NetworkWidget

对于特定于产品的程序集,我使用类似 Tek4.ProductName.IO.FileWriter 的东西。

输出.exe文件名太长!!! Company.Product.SuperApp.exe

Visual Studio 对输出文件使用完整的程序集名称;这对于 DLL 非常有用,但对于控制台应用程序来说太过分了——即 Tek4.Utils.ConsoleApp.exe

解决方案 1:(不推荐)

放弃主要可执行程序集的分层名称:

  • 程序集名称:ConsoleApp
  • EXE文件名:ConsoleApp.exe

此解决方案意味着您交付的 .exe 文件将仅包含一个简单的程序集名称,该名称无法很好地识别自身,并且更容易与其他程序集发生名称冲突。堆栈跟踪、.NET Reflector 等将仅显示 ConsoleApp 而不是完全限定的程序集名称。

解决方案 2:(我当前的选择)

编译后重命名输出文件,同时保留完整的内部程序集名称(使用构建后事件或手动重命名):

  • 程序集名称: Tek4.Utilities.ConsoleApp
  • EXE 文件名: Tek4.Utilities.ConsoleApp.exe --> ConsoleApp.exe

有了这个解决方案,名称冲突就不太可能发生,并且程序集名称出现的任何地方(即堆栈跟踪、系统事件日志等)都可以很容易地识别来源。

尽管如此,出于某种原因,我仍然讨厌笨拙的手动重命名。

您的解决方案和实践?

非常感谢。

最佳答案

我还会使用较短的可执行文件名称,尤其是在预期从命令行使用时。

话虽如此,如果您的应用程序同时具有 GUI 版本和命令行版本,我经常看到以下约定:

图形用户界面:SuperApp.exe CLI: SuperApp.Console.exe

前世今生

关于.net - 命名主程序集 (.exe) 以避免长文件名 : Company. Product.Application.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6116178/

相关文章:

c# - 从对话框窗口获取值

c# - 异步等待另一个请求而不阻塞

.net - SqlDataReader 性能缓慢

visual-studio - 在 Visual Studio 中调试期间是否有显示程序集的设置?

Azure 部署问题 : Unhandled Exception: Could not load file or assembly 'Microsoft. Azure.DocumentDB.Core

linux - 根据Process ID可以知道最近有没有访问过CPU的cache内存?

c# - 自动 Cookie 处理 C#/.NET HttpWebRequest+HttpWebResponse

c# - 在外部程序中加载 DLL?

c# - 引用没有编译时用法

PHP DOTNET() 无法从 "System"程序集加载