VS2022中无法为DLL设置文件或程序集版本问题求助
解决VS2022升级DLL项目版本信息不生效问题
排查步骤与解决方案
1. 清理冲突的AssemblyInfo.cs文件
升级后项目可能遗留旧的Properties/AssemblyInfo.cs,其中的硬编码配置会覆盖csproj的设置:
- 打开该文件,删除或注释掉以下行:
[assembly: AssemblyVersion("x.x.x.x")] [assembly: AssemblyFileVersion("x.x.x.x")] [assembly: AssemblyCopyright("xxx")] - 让csproj中的版本配置成为唯一生效源。
2. 确认csproj配置格式正确性
确保SDK风格项目的csproj中版本配置位于主<PropertyGroup>下,无嵌套冲突:
<PropertyGroup> <TargetFramework>net6.0</TargetFramework> <!-- 对应你的目标框架 --> <Version>1.2.3.4</Version> <FileVersion>1.2.3.4</FileVersion> <AssemblyVersion>1.2.3.4</AssemblyVersion> <Copyright>© 2024 你的版权信息</Copyright> </PropertyGroup>
注意:不要将这些配置放在Release/Debug专属的PropertyGroup中,除非你需要分环境配置版本。
3. 彻底清理并重建项目
- 右键解决方案选择清理解决方案,手动删除项目的
bin和obj目录 - 执行重新生成解决方案,避免旧编译缓存导致版本信息未更新
4. 修正NuGet包版本映射
若NuGet包版本与DLL版本不符,在csproj中添加版本关联配置:
<PropertyGroup> <PackageVersion>$(Version)</PackageVersion> <!-- 让NuGet版本同步项目版本 --> </PropertyGroup>
确保打包时未手动指定固定版本,覆盖项目变量。
5. 验证版本信息的正确方式
- 使用PowerShell命令精准查看:
Get-Item .\你的DLL文件.dll | Select-Object VersionInfo - 或用ILDasm工具打开DLL,查看程序集元数据中的版本信息,确认是否嵌入成功
内容的提问来源于stack exchange,提问作者Peter M
相关产品推荐
相关产品推荐

