我有一个用.NET Framework 4.7(c#)制作的解决方案,其中我们有两个项目,它们在相同的命名空间中包含相同的分部类,这些项目打包在
nupkg
。
从现在起,我们将遵循以下逻辑:
-
项目A:具有分部类的一部分,并引用项目B
-
项目B:具有分部类的另一部分(代码自动生成)
-
项目C:该项目具有
nupkg
被引用,但如果我们在编译时尝试调用上述类的任何属性,则会出现以下错误:
CS0433 The type 'Config' exists in 'ProjectA, Version=1.2023.2.21, Culture=neutral, PublicKeyToken=null' and in 'ProjectB, Version=1.2023.2.21, Culture=neutral, PublicKeyToken=null'
我已经尝试过:
-
清洁和重建。
-
删除并再次添加引用。
-
删除多余和无用的引用。
-
从Project C卸载NuGet并重新安装。
以下是每个项目中相互冲突的代码片段:
项目A:分部类配置
namespace WhatIsWrong
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public partial class Config
{
}
}
项目B:分部类配置
namespace WhatIsWrong
{
using System;
using System.Collections.Generic;
public partial class Config
{
public string parameter { get; set; }
public string value { get; set; }
}
}
项目C
public DbSet<WhatIsWrong.Config> Config { get; set; }
更新:
我已经认为分部类必须在同一个项目上,就像Jon和Damien在评论中指出的那样,但这个解决方案是由其他人创建的,应该是有效的,我想他的想法是两个项目都只有一个模型(没有错),但他也试着在两个项目中使用分部,最终导致了错误。