我正在编写一些针对 .NET 4.8 的 C# 代码,它需要使用 Microsoft Graph。它可以与 Microsoft.Graph SDK (V1) 配合使用,但是当我尝试切换到 Beta 时,我遇到了编译错误,例如
Error CS0433 The type 'GraphServiceClient' exists in both 'Microsoft.Graph.Beta, Version=0.29.0.0 <...>' and 'Microsoft.Graph, Version=1.19.0.0 <...>'
原因是我正在使用的另一个 nuget,即 SharePointPnPCoreOnline,不幸的是依赖于 Microsoft.Graph 1.19。
使用这两个程序集似乎应该没有问题,因为 - 根据当前文档 ( https://learn.microsoft.com/en-us/graph/sdks/use-beta ) - Beta 应该使用自己的命名空间:
using Microsoft.Graph.Beta;
不幸的是,这是错误的,两个库共享相同的命名空间 Microsoft.Graph。上面的代码结果
Error CS0234 The type or namespace name 'Beta' does not exist in the namespace 'Microsoft.Graph' (are you missing an assembly reference?)
我正在尝试使用编译器选项来解析程序集,但在 VS2019 下它非常复杂 - 到目前为止还没有运气。
但我想知道为什么我在这个问题上找不到任何东西,我肯定不是唯一一个 - 难道我错过了一些明显的东西?请帮忙:)
最佳答案
不确定您是否解决了这个问题,但我通过向 Microsoft.Graph.Beta 包添加别名解决了这个问题。然后在引用时添加此内容以便能够引用您的 beta 端点或资源。将 MSGraphBeta
更改为您作为别名添加到包中的任何内容。
extern alias MSGraphBeta;
using GraphBeta = MSGraphBeta.Microsoft.Graph;
关于c# - 是否可以在同一个应用程序中同时使用 Microsoft.Graph 和 Microsoft.Graph.Beta?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64319817/