GraphServiceClientオブジェクトの宣言

bishy 40 評価のポイント
2024-05-23T06:47:51.22+00:00

Visual Studio 2017 .Net Framework 4.6.1の環境にて、

下記サイトを参考にGraphServiceClientを作成しようとしています。

https://blog.beachside.dev/entry/2021/03/31/190000

using System;
using System.Threading.Tasks;
using Microsoft.Graph;
using Microsoft.Graph.Auth;
using Microsoft.Identity.Client;
namespace ConsoleAppForBlog
{
    private GraphServiceClient createGraphClient()
    {
        // TODO: Azure AD の Client Id をセット
        private const string ClientId = "";
        // TODO: Azure AD の Tenant Id をセット
        private const string TenantId = "";
        // TODO: Azure AD のアプリのシークレットをセット
        private const string ClientSecret = "";
        
        // GraphService Client の初期化
        var confidentialClientApplication = ConfidentialClientApplicationBuilder
            .Create(ClientId)
            .WithTenantId(TenantId)
            .WithClientSecret(ClientSecret)
            .Build();
        var provider = new ClientCredentialProvider(confidentialClientApplication);
        var graphServiceClient = new GraphServiceClient(provider);
        return graphServiceClient;
    }
}

サンプルコードを参考に上記のコードを作成したところ、

new GraphServiceClient(privider);

の部分で

エラーコードCS7069 型 'IAuthenticationProvider' への参照では、'Microsoft.Graph.Core' で定義されていると指定されていますが、見つかりませんでした

エラーコードCS1503 引数 1: は 'Microsoft.Graph.Auth.ClientCredentialProvider' から 'Microsoft.Kiota.Abstractions.IRequestAdapter' へ変換することはできません

というエラーが発生してしまい、これが解消できません。

解消法をご教示お願いいたします。

.NET
.NET
.NET ソフトウェア フレームワークに基づく Microsoft テクノロジ。
66 件の質問
C#
C#
C 言語ファミリをルーツとし、コンポーネント指向プログラミングのサポートを含む、オブジェクト指向およびタイプセーフのプログラミング言語。
32 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. gekka 9,666 評価のポイント MVP
    2024-05-23T09:59:14.63+00:00

    提示されているサイトだと

    • Microsoft.Graph v3.28.0
    • Microsoft.Graph.Auth 1.0.0-preview6

    となっていますが、nugetで取得したライブラリのバージョンはいくつですか?

    自動的に選択される更新された新しいバージョンを参照してしまうと、.Net Framework4.6.1に非対応のバージョンになってアセンブリを読めなくなります。
    すくなくともMicrosoft.Graphをv4よりも前のバージョンにしないと4.6.1では使えません。

    1 人がこの回答が役に立ったと思いました。

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。