I'm working on porting one of our common libraries over to NET Standard 2.0.
There are several areas where the existing library uses the old ConfigurationManager to access the app.config file.
I've added in the pre-release version of System.Configuration.ConfigurationManager which is resolving fine when netstandard 2.0 is selected. But when I select net461 its throwing an error:
Severity Code Description Project File Line Suppression State
Error CS0433 The type 'ConfigurationManager' exists in both 'System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' and 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' Synovia.Service.Common.Core(net461) C:\git\synovia.service.common\Common\EmailHelper.cs 15 Active
Looking through my references I dont see where I am referencing both. Has anyone encountered this and what did you do to resolve it?
All attempts at Searching for answers keeps resulting in .NET 2.0 answers etc.
EDIT - CURRENT REFERENCES As you can see I'm not referencing System.Configuration where. Just the System.Configuration.ConfigurationManager.
<ItemGroup>
<PackageReference Include="ALK.Core" Version="1.1.0" />
<PackageReference Include="Amazon.Lambda.Core" Version="1.0.0" />
<PackageReference Include="AWSSDK.Core" Version="3.3.14.1" />
<PackageReference Include="AWSSDK.Lambda" Version="3.3.6.2" />
<PackageReference Include="AWSSDK.S3" Version="3.3.7" />
<PackageReference Include="AWSSDK.SimpleNotificationService" Version="3.3.0.17" />
<PackageReference Include="AWSSDK.SimpleWorkflow" Version="3.3.0.17" />
<PackageReference Include="DogStatsD-CSharp-Client" Version="3.0.0" />
<PackageReference Include="IdeaBlade.DevForce.Core" Version="7.5.0" />
<PackageReference Include="JetBrains.Annotations" Version="10.4.0" />
<PackageReference Include="log4net" Version="2.0.8" />
<PackageReference Include="Log4Net.Async.Standard" Version="3.0.0" />
<PackageReference Include="Microsoft.SqlServer.Types" Version="14.0.314.76" />
<PackageReference Include="Moneris" Version="3.5.1" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="protobuf-net" Version="2.3.0-alpha" />
<PackageReference Include="PushSharp" Version="2.2.1" />
<PackageReference Include="RabbitMQ.Client" Version="4.1.3" />
<PackageReference Include="RabbitMqConsumers" Version="1.0.20" />
<PackageReference Include="ServiceStack" Version="4.5.12" />
<PackageReference Include="ServiceStack.Text" Version="4.5.12" />
<PackageReference Include="StackExchange.Redis" Version="1.2.3" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.0-preview1-25305-02" />
<PackageReference Include="System.Data.Common" Version="4.3.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.4.0-preview1-25305-02" />
<PackageReference Include="System.IO" Version="4.3.0" />
<PackageReference Include="System.Linq" Version="4.3.0" />
<PackageReference Include="System.Reflection" Version="4.3.0" />
<PackageReference Include="System.Runtime.Serialization.Xml" Version="4.3.0" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="4.3.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.3.0" />
<PackageReference Include="System.Threading" Version="4.3.0" />
<PackageReference Include="System.Threading.Tasks" Version="4.3.0" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.4.0-preview1-25305-02" />
<PackageReference Include="System.Threading.Tasks.Parallel" Version="4.3.0" />
<PackageReference Include="System.Threading.Thread" Version="4.3.0" />
<PackageReference Include="System.Threading.Timer" Version="4.3.0" />
<PackageReference Include="System.Xml.ReaderWriter" Version="4.3.0" />
<PackageReference Include="System.Xml.XDocument" Version="4.3.0" />
<PackageReference Include="System.Xml.XmlDocument" Version="4.3.0" />
<PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0" />
<PackageReference Include="Telogis.Geobase" Version="4.7.0" />
</ItemGroup>
I finally got this working. All the suggestions made helped me in the right direction. The main problems were I had a reference that was trying to pull the wrong System.Configuration. Once I sorted all that out I added this into my csproj
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="System.Configuration" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.0-preview1-25305-02" />
</ItemGroup>
I had originally tried this but it wasnt working b/c I typed 'netstandard20' instead of 'netstandard2.0' ....
Oh well its working now, thanks to everyone for the help.