如何引用 NuGet 包?
How to reference NuGet packages?
我是 .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>
才能使项目正确编译?
在 C# 中,您必须注意对其他项目的引用。如果一个项目已被其他项目引用,则其他项目不能使用或引用第一个项目。如果你这样做了,它会给你编译错误。
您需要为每个引用该包中方法的项目安装 Nuget 包。因此,如果只有您的 DataAccess 项目需要 AutoMapper,那么将 Nuget 包添加到该项目就足够了。该解决方案只不过是一堆项目的包装器。您应该能够单独发布一个项目。该项目将处理其自身的依赖项。很难找出哪里出了问题。如果您创建一个小型测试项目可能会有所帮助,例如创建一个空的控制台项目和一个 DataAccess 库。然后将 Nuget 包添加到您的 DataAccess 库并复制所有内容。通过这种方式,您可以尝试找出问题所在。确保为正确的项目安装 Nuget 包(在我发现它是如何工作之前,我错了好几次)。
我是 .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>
才能使项目正确编译?
在 C# 中,您必须注意对其他项目的引用。如果一个项目已被其他项目引用,则其他项目不能使用或引用第一个项目。如果你这样做了,它会给你编译错误。
您需要为每个引用该包中方法的项目安装 Nuget 包。因此,如果只有您的 DataAccess 项目需要 AutoMapper,那么将 Nuget 包添加到该项目就足够了。该解决方案只不过是一堆项目的包装器。您应该能够单独发布一个项目。该项目将处理其自身的依赖项。很难找出哪里出了问题。如果您创建一个小型测试项目可能会有所帮助,例如创建一个空的控制台项目和一个 DataAccess 库。然后将 Nuget 包添加到您的 DataAccess 库并复制所有内容。通过这种方式,您可以尝试找出问题所在。确保为正确的项目安装 Nuget 包(在我发现它是如何工作之前,我错了好几次)。