【发布时间】:2020-02-03 01:36:54
【问题描述】:
我是 .NET 世界的新手,此时我对包、引用以及如何在我的 c# 项目中引用它们感到非常困惑。
我的解决方案中有 3 个项目:
-
DataAccess- 包含访问数据的逻辑、DTO与实体的映射等, -
DataAccessTest- 包含DataAccess项目的单元测试, -
Service- 将DataAccess项目包装到 Windows 服务中。
现在,DataAccess 项目引用 AutoMapper(以及其他)来帮助进行数据转换。它包含在csproj 文件的<PackageReference /> 元素中。当我在做dotnet restore 时,它似乎工作正常,但是在尝试解析命名空间时dotnet build 失败了! JetBrains Rider 也是如此 - 在我在 <Reference>! 中明确引用它们之前,它不会找到命名空间!
不确定是否相关,但依赖项目也是如此。例如,DataAccessTest 引用了 DataAccess 项目 - 以便运行测试。但是,它仍然需要在项目引用之上添加传递依赖项(例如 AutoMapper)。
这是预期的行为吗?您是否需要同时保留<PackageReference> 和<Reference> 才能正确编译项目?
【问题讨论】:
-
确切的错误是什么
-
我认为答案是“是”。要构建您的项目,所有引用都需要在构建时有效。如果您使用 Tools => NuGet Package Manager => Manage NuGet Packages for Solution 并添加包,它们最终会出现在您的 csproj 文件中...
标签: c# .net package nuget rider