当我偶然发现这个奇怪的事情时,我正在将 net core 2.0 应用程序升级到 2.1 的路上。
如果我创建一个 Web 项目,然后创建一个引用第一个项目的 xunit 项目,那么一旦我使用任何 Newtonsoft.Json 类,我就会收到以下错误:
/media/data/sas/devel/opt/dotnet-sdk-2.1.401/sdk/2.1.401/Microsoft.Common.CurrentVersion.targets(2110,5):
warning MSB3277: Found conflicts between different versions of "Newtonsoft.Json" that could not be resolved.
These reference conflicts are listed in the build log when log verbosity is set to detailed.
[/media/data/sas/devel/apps/tmp/dotnet-error/test/test.csproj]
test -> /media/data/sas/devel/apps/tmp/dotnet-error/test/bin/Debug/netcoreapp2.1/test.dll
在我尝试升级的项目中,我遇到了很多这样的错误。看起来 xunit 项目正在使用不同版本的包并且它们发生冲突。
以下是重现错误的步骤:
$ dotnet new web -o project
$ dotnet new xunit -o test
$ cd test
$ dotnet add reference ../project/
$ dotnet clean && dotnet build
一切正常,但如果我将其添加到 project/Program.cs
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
var s = Newtonsoft.Json.JsonConvert.SerializeObject(123);
}
然后我收到上述警告。
我有什么办法可以解决这个问题吗?
BTW
$ dotnet --version
2.1.401
我想我在这找到了答案迁移指南:
https://learn.microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1#rules-for-projects-targeting-the-shared-runtime
您必须添加一个包引用Microsoft.AspNetCore.App
在测试项目中。
添加包参考Microsoft.AspNetCore.App
到 MyApp.Tests。
有关更多信息,请参阅集成测试很难设置和
可能会破坏共享框架服务.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)