Asp.Net项目GenerateAssemblyInfo配置异常:文件找不到/重复程序集错误
解决方案:ASP.NET项目AssemblyInfo生成冲突问题
问题根源
你的项目存在两个矛盾问题:
- 关闭
GenerateAssemblyInfo时,主WebApi1项目尝试引用Controllers子项目obj目录下不存在的Controllers.AssemblyInfo.cs文件 - 开启该配置时,全局或项目间重复生成程序集信息导致冲突
具体解决步骤
1. 修正WebApi1.csproj的文件引用
打开WebApi1.csproj,检查是否存在错误的<Compile>或<Content>项引用了Controllers子项目obj目录的文件。如果有,直接移除这些无效引用。
2. 统一全局AssemblyInfo生成策略
在根目录的Directory.Build.props中添加全局配置,确保所有项目一致关闭自动生成:
<PropertyGroup> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute> </PropertyGroup>
之后为每个项目手动添加AssemblyInfo.cs文件(放在项目根目录),示例代码:
using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("WebApi1.Controllers")] [assembly: AssemblyProduct("WebApi1.Controllers")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: ComVisible(false)] [assembly: Guid("your-unique-guid-here")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")]
3. 清理项目缓存
- 删除所有项目下的
obj和bin目录 - 执行命令行清理并重新构建:
dotnet clean dotnet build
4. 验证项目引用路径
检查Controllers.csproj中的项目引用路径是否正确:
- 确认
../../CommonStuff/Core/ErrorHandling/ErrorHandling.csproj指向的文件实际存在 - 确保WebApi1.csproj正确引用Controllers子项目:
<ItemGroup> <ProjectReference Include="Controllers/Controllers.csproj" /> </ItemGroup>
内容的提问来源于stack exchange,提问作者ujwal lamichhane
相关产品推荐
相关产品推荐

