2016-03-12 2 views
1

Я разрабатываю приложение, используя Windows 10 SDK, и я хочу использовать Live SDK. Я использую VS 2015, и я установил Live SDK через nuget.Ссылка на сборку Live SDK отсутствует при разработке универсального приложения в Windows 10

После код был взят из MSDN пример кода:

LiveConnectClient liveClient; 
    private async Task<int> UploadFileToOneDrive() 
    { 
     try 
     { 
      // create OneDrive auth client 
      var authClient = new LiveAuthClient(); 

      // ask for both read and write access to the OneDrive 
      LiveLoginResult result = await authClient.LoginAsync(new string[] { "wl.skydrive", "wl.skydrive_update" }); 

      // if login successful 
      if (result.Status == LiveConnectSessionStatus.Connected) 
      { 
       // create a OneDrive client 
       liveClient = new LiveConnectClient(result.Session); 

       // create a local file 
       StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("filename", CreationCollisionOption.ReplaceExisting); 

       // copy some txt to local file 
       MemoryStream ms = new MemoryStream(); 
       DataContractSerializer serializer = new DataContractSerializer(typeof(string)); 
       serializer.WriteObject(ms, "Hello OneDrive World!!"); 

       using (Stream fileStream = await file.OpenStreamForWriteAsync()) 
       { 
        ms.Seek(0, SeekOrigin.Begin); 
        await ms.CopyToAsync(fileStream); 
        await fileStream.FlushAsync(); 
       } 

       // create a folder 
       string folderID = await GetFolderID("folderone"); 

       if (string.IsNullOrEmpty(folderID)) 
       { 
        // return error 
        return 0; 
       } 

       // upload local file to OneDrive 
       await liveClient.BackgroundUploadAsync(folderID, file.Name, file, OverwriteOption.Overwrite); 

       return 1; 
      } 
     } 
     catch 
     { 
     } 
     // return error 
     return 0; 
    } 

    public async Task<int> DownloadFileFromOneDrive() 
    { 
     try 
     { 
      string fileID = string.Empty; 

      // get folder ID 
      string folderID = await GetFolderID("folderone"); 

      if (string.IsNullOrEmpty(folderID)) 
      { 
       return 0; // doesnt exists 
      } 

      // get list of files in this folder 
      LiveOperationResult loResults = await liveClient.GetAsync(folderID + "/files"); 
      List<object> folder = loResults.Result["data"] as List<object>; 

      // search for our file 
      foreach (object fileDetails in folder) 
      { 
       IDictionary<string, object> file = fileDetails as IDictionary<string, object>; 
       if (string.Compare(file["name"].ToString(), "filename", StringComparison.OrdinalIgnoreCase) == 0) 
       { 
        // found our file 
        fileID = file["id"].ToString(); 
        break; 
       } 
      } 

      if (string.IsNullOrEmpty(fileID)) 
      { 
       // file doesnt exists 
       return 0; 
      } 

      // create local file 
      StorageFile localFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("filename_from_onedrive", CreationCollisionOption.ReplaceExisting); 

      // download file from OneDrive 
      await liveClient.BackgroundDownloadAsync(fileID + "/content", localFile); 

      return 1; 
     } 
     catch 
     { 
     } 
     return 0; 
    } 

Проблема заключается в том, что даже после установки NuGet, LiveConnectClient не получает признания. Его ссылка на сборку отсутствует. Когда я попытался установить его вручную, добавив ссылку, он все равно не будет разрешен. (Может быть предназначен только для Windows 8?)

Прямой информации SDK показан на изображении ниже:

enter image description here

The Live SDK отсюда: https://github.com/liveservices/LiveSDK-for-Windows

Что же я отсутствует здесь?

+0

Проверьте, если ссылка была правильно добавлен, [если нет, то добавить его вручную] (http://stackoverflow.com/a/33215523/2681948). – Romasz

+0

добавлена ​​ссылка на изображение Live SDK – vip007

+0

@Romasz: после ручного добавления ссылки на Microsoft.Live.dll разрешена проблема. Спасибо. Но это все еще запутывает, почему VS не распознал авто. – vip007

ответ

0

Это, вероятно, Nuget package проблема, следовательно adding a reference manually, похоже, решает проблему. Вы найдете ссылку на:

C:\Users\USER\.nuget\packages\LiveSDK\5.6.3\WindowsXAML\MicrosoftLive.dll

Смежные вопросы