I have a solution made with .NET Framework 4.7 (c#) in which we have 2 projects that contain the same partial class within the same namespace, those projects are packaged on a nupkg.
From now on we will follow the following logic:
- Project A: has a part of the partial class and reference to Project B
- Project B: has another part of the partial class (code generated automatically)
- Project C: this project has the
nupkgreferenced but if we try to call any property of the mentioned class when compiling, it gives the following error:
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'
I’ve already tried:
- Cleaning and rebuilding.
- Deleting and adding again the references.
- Removing redundant and useless references.
- Uninstalling the NuGet from Project C and installing it again.
Here are the conflicting code snippets in each project:
Project A: partial class Config
namespace WhatIsWrong
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public partial class Config
{
}
}
Project B: partial class Config
namespace WhatIsWrong
{
using System;
using System.Collections.Generic;
public partial class Config
{
public string parameter { get; set; }
public string value { get; set; }
}
}
Project C
public DbSet<WhatIsWrong.Config> Config { get; set; }
>Solution :
Project A: has a part of the partial class and reference to Project B
Project B: has another part of the partial class (code generated automatically)
That’s not how partial classes work. What you’ve got there is two classes in two projects.
Every part of a partial class needs to be in the same project, because they’re compiled together to be one type.
Partial classes allow a single type’s code to be distributed amongst multiple files – but not multiple projects.