为什么是PackageReference';s引用不适用于msbuild和共享项目?

为什么是PackageReference';s引用不适用于msbuild和共享项目?,msbuild,nuget,shared-project,packagereference,Msbuild,Nuget,Shared Project,Packagereference,从packages.config迁移到packagesreferences(.NET4.5项目)后,生成(msbuild)被破坏 错误CS0246:找不到类型或命名空间名称“anynugetpackage”(是否缺少using指令或程序集引用?) 使用VisualStudio进行构建非常有效。 因此,我做了一些研究,发现包的恢复在msbuild中也可以正常工作 该问题仅存在于PackageReference引用未正确应用的共享项目(.shproj)中 一种解决方法是向PackageReferen

从packages.config迁移到packagesreferences(.NET4.5项目)后,生成(msbuild)被破坏

错误CS0246:找不到类型或命名空间名称“anynugetpackage”(是否缺少using指令或程序集引用?)

使用VisualStudio进行构建非常有效。 因此,我做了一些研究,发现包的恢复在msbuild中也可以正常工作

该问题仅存在于PackageReference引用未正确应用的共享项目(.shproj)中

一种解决方法是向PackageReference的lib添加一个修复引用,但是像这样,与packages.config相比,我失去了PackageReference的所有优点

您可以查看项目和不同的解决方案(分支):



有关构建和错误日志,请参阅github操作


有没有更好的方法处理它?

我不知道shproj(共享项目)作为一个概念存在。这些可以用于任何类型的项目吗?我来这里是因为我遇到了一个问题,我想在一个项目中在另一个项目中重用一些DAL逻辑,而不创建API供两个项目交流。据我所知,共享项目只是一个源文件的集合,可以包含在多个其他项目中。在这些其他项目中,会进行特定于编译的配置,例如编译定义、框架设置。但是如果你在共享项目中添加一个额外的源文件,它会通过共享项目自动包含到你所有的正常项目中,这在我看来是一个主要的好处。