【发布时间】:2020-01-05 12:56:17
【问题描述】:
从 packages.config 迁移到 PackageReferences(.NET4.5 项目)后,构建(msbuild)被破坏。
错误 CS0246:找不到类型或命名空间名称“anynugetpackage”(您是否缺少 using 指令或程序集引用?)
使用 VisualStudio 进行构建可以完美运行。 所以我做了一些研究,发现包的恢复也适用于 msbuild。
该问题仅存在于未正确应用 PackageReference 引用的共享项目 (.shproj)。
一种解决方法是向 PackageReference 的库添加一个修复引用,但这样我就失去了 PackageReference 与 packages.config 相比的所有优势
您可以查看项目和不同的解决方案(分支):
packages.config
PackageReference
PackageReferenceWorkaround
有关构建和错误日志,请参阅 github 操作。
有没有更好的处理方法?
【问题讨论】:
-
我不知道 shproj(共享项目)作为一个概念存在。这些可以用于任何类型的项目吗?我来到这里是因为我遇到了一个问题,即我想在另一个项目中的一个项目中重用一些 DAL 逻辑,而不需要创建 API 让两者进行对话。
-
据我了解,共享项目只是源文件的集合,可以包含在多个其他项目中。在这些其他项目中,编译特定配置发生,例如编译定义,框架设置。但是,如果您向共享项目添加一个额外的源文件,它会通过共享项目自动包含到您的所有正常项目中,这是我认为的主要好处。
标签: msbuild nuget shared-project packagereference