Я разрабатываю приложение, используя 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 показан на изображении ниже:
The Live SDK отсюда: https://github.com/liveservices/LiveSDK-for-Windows
Что же я отсутствует здесь?
Проверьте, если ссылка была правильно добавлен, [если нет, то добавить его вручную] (http://stackoverflow.com/a/33215523/2681948). – Romasz
добавлена ссылка на изображение Live SDK – vip007
@Romasz: после ручного добавления ссылки на Microsoft.Live.dll разрешена проблема. Спасибо. Но это все еще запутывает, почему VS не распознал авто. – vip007