我正在努力将我们的一个公共库移植到NetStandard2.0。
现有库使用旧的ConfigurationManager访问app.config文件的领域有几个。
我已经添加了System.Configuration.ConfigurationManager的预发布版本,当选择netStandard2.0时,它可以很好地解决问题。但是,当我选择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>
发布于 2017-06-23 18:18:42
我终于开始工作了。所提出的所有建议都帮助我朝着正确的方向前进。主要的问题是,我有一个参考资料,试图提取错误的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>
我本来试过这样做的,但我输入的是'netstandard20‘而不是'netstandard2.0’.
哦,现在起作用了,感谢大家的帮助。
发布于 2017-06-23 15:50:57
我不知道这个列表中的其他依赖项,但是在这里引用ServiceStack的.NET框架依赖关系:
<PackageReference Include="ServiceStack" Version="4.5.12" />
<PackageReference Include="ServiceStack.Text" Version="4.5.12" />
它们确实依赖于System.Configuration。要引用ServiceStack的.NET标准包,您需要引用:
<PackageReference Include="ServiceStack.Core" Version="1.0.43" />
<PackageReference Include="ServiceStack.Text.Core" Version="1.0.43" />
如果您同时针对.NET框架和.NET标准,则需要在各自的平台下引用这两个依赖项。
发布于 2022-09-27 07:51:39
就我而言,我做了以下工作:
之后一切都很顺利。
https://stackoverflow.com/questions/44724282
复制相似问题