c# - 是否可以在同一个应用程序中同时使用 Microsoft.Graph 和 Microsoft.Graph.Beta?

标签 c# microsoft-graph-api microsoft-graph-sdks

我正在编写一些针对 .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/

相关文章:

reactjs - Azure B2C 引发访问 token 验证失败。无效观众

c# - 令人惊讶的元组(不)相等

microsoft-graph-api - 列表项的 Microsoft Graph API 文件附件

office365 - findRooms API 限制为 100 个房间

java - Microsoft Graph 放置 api 未在图形客户端中显示为方法

azure - [从 Azure AD Graph 迁移到 Microsoft Graph] : how to get the parameters to use the Microsoft Graph API

C#,将数据库值转换为字符串?

c# - foreach to linq 提示需要

c# - 将 java 代码转换为 C#。运算符(operator)错误

azure - 将受邀 guest 用户添加到 Azure AD 中的组