ConfigurationManager 存在于 System.Configuration.ConfigurationManager 和 System.Configuration 中

ConfigurationManager exists in both System.Configuration.ConfigurationManager and in System.Configuration

我正在努力将我们的一个公共库移植到 NET Standard 2.0。

现有库在多个区域使用旧的 ConfigurationManager 访问 app.config 文件。

我在 System.Configuration.ConfigurationManager 的预发布版本中添加了它,当 netstandard 2.0 被 selected 时,它可以很好地解决问题。但是当我 select net461 抛出错误时:

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

查看我的参考资料,我没有看到我在哪里引用了两者。有没有人遇到过这个问题,你是如何解决的?

搜索答案的所有尝试都会导致 .NET 2.0 答案等

编辑 - 当前参考文献 如您所见,我没有引用 System.Configuration 的地方。只是 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>

我不知道此列表中的其他依赖项,但您在此处引用了 ServiceStack 的 .NET Framework 依赖项:

<PackageReference Include="ServiceStack" Version="4.5.12" />
<PackageReference Include="ServiceStack.Text" Version="4.5.12" />

它确实依赖于 System.Configuration。要引用 ServiceStack 的 .NET Standard 包,您需要改为引用:

<PackageReference Include="ServiceStack.Core" Version="1.0.43" />
<PackageReference Include="ServiceStack.Text.Core" Version="1.0.43" />

如果您同时针对 .NET Framework 和 .NET Standard,则需要在各自的平台下引用这两个依赖项。

我终于搞定了。提出的所有建议都帮助我朝着正确的方向前进。主要问题是我有一个参考试图拉错 System.Configuration。整理完所有内容后,我将其添加到我的 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>

我最初尝试过,但没有用 b/c 我输入了 'netstandard20' 而不是 'netstandard2.0' ....

哦,现在可以使用了,感谢大家的帮助。