Visual Studio编译的.exe文件原始文件名含.dll后缀,如何编译时配置?
解决Visual Studio编译后.exe文件“原始文件名”元数据后缀错误的问题
方法1:正确配置AssemblyInfo文件属性
在项目的AssemblyInfo.cs(C#)或AssemblyInfo.vb(VB.NET)文件中,通过AssemblyFileName属性直接控制“原始文件名”字段,这是最直接的编译阶段配置方式:
示例C#代码:
// 指定带正确.exe后缀的原始文件名 [assembly: AssemblyFileName("YourTargetApp.exe")] // 可选:同步设置程序集标题(非必须,但可统一元数据) [assembly: AssemblyTitle("Your Application")]
如果是.NET Core/.NET 5+项目,自动生成的AssemblyInfo可能未包含该属性,需手动添加上述代码。
方法2:在.NET Core/.NET 5+项目文件中配置
直接编辑项目文件(右键项目→编辑项目文件),添加以下配置节点,明确指定原始文件名:
<PropertyGroup> <!-- 程序集逻辑名称(不带后缀) --> <AssemblyName>YourAppName</AssemblyName> <!-- 控制文件详细信息中的“原始文件名”,需带完整后缀 --> <AssemblyFileName>YourAppName.exe</AssemblyFileName> </PropertyGroup>
方法3:检查项目输出类型配置
确认项目类型为可执行程序而非类库:
- 右键项目→属性→应用程序→确保“输出类型”选择“控制台应用程序”或“Windows应用程序”,而非“类库”。类库项目默认输出.dll,即使手动修改输出扩展名,元数据仍可能保留.dll后缀。
常见误区
不要混淆AssemblyName和AssemblyFileName:
AssemblyName是程序集的逻辑标识,不带文件后缀;AssemblyFileName才是控制文件详细信息中“原始文件名”的核心属性,必须指定完整的正确后缀(.exe)。
内容的提问来源于stack exchange,提问作者Edik Baitsym
相关产品推荐
相关产品推荐

