Visual Studio 团队服务 API 示例抛出 System.Net.Http 错误
Visual Studio Team Services API Example Throwing System.Net.Http Error
我正在尝试编写一个与 Visual Studio Team Services 通信的应用程序,使用列出的 Nuget 包 here。
示例代码直接来自 Microsoft 的官方文档,在同一页面上列出了包,在 "Pattern for use" 下。我的测试代码在控制台应用程序中,设置为 .net 框架的 4.7 版本(由 Visual Studio 2017 15.2(26430.16) Release 编译,但我认为这无关紧要)。除了更改连接 url、项目和存储库名称外,该代码与 Microsoft 的示例相同。
唯一直接安装的 Nuget 包(大约 30 个其他作为依赖项安装)是 Microsoft.TeamFoundationServer.ExtendedClient
。
Install-Package Microsoft.TeamFoundationServer.ExtendedClient
using System;
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.Client;
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.VisualStudio.Services.WebApi;
namespace vssApiTest
{
class Program
{
const String c_collectionUri = "https://[[redacted]].visualstudio.com/DefaultCollection";
const String c_projectName = "Inspections";
const String c_repoName = "Src";
static void Main(string[] args)
{
// Interactively ask the user for credentials, caching them so the user isn't constantly prompted
VssCredentials creds = new VssClientCredentials();
creds.Storage = new VssClientCredentialStorage();
// Connect to VSTS
VssConnection connection = new VssConnection(new Uri(c_collectionUri), creds);
// Get a GitHttpClient to talk to the Git endpoints
GitHttpClient gitClient = connection.GetClient<GitHttpClient>();
// Get data about a specific repository
var repo = gitClient.GetRepositoryAsync(c_projectName, c_repoName).Result;
}
}
}
在行 VssConnection connection = new VssConnection(new Uri(c_collectionUri), creds);
上,一个 TypeLoadException
被抛出(在 运行 时间)消息:
Inheritance security rules violated by type:
'System.Net.Http.WebRequestHandler'. Derived types must either match
the security accessibility of the base type or be less accessible.
None 的 Google 搜索变体我在这个错误消息上尝试过,返回了任何有用的东西。
我是不是做错了什么,我遵循的示例代码是错误的,还是存在其他问题?
问题是由于 System.Net.Http
Nuget 包的 4.1.0
版本中引入的错误,如 here 所述。
解决方案是将该 Nuget 包更新到最新版本(4.3.2
此时,可能 也已在早期版本中修复)。
我正在尝试编写一个与 Visual Studio Team Services 通信的应用程序,使用列出的 Nuget 包 here。
示例代码直接来自 Microsoft 的官方文档,在同一页面上列出了包,在 "Pattern for use" 下。我的测试代码在控制台应用程序中,设置为 .net 框架的 4.7 版本(由 Visual Studio 2017 15.2(26430.16) Release 编译,但我认为这无关紧要)。除了更改连接 url、项目和存储库名称外,该代码与 Microsoft 的示例相同。
唯一直接安装的 Nuget 包(大约 30 个其他作为依赖项安装)是 Microsoft.TeamFoundationServer.ExtendedClient
。
Install-Package Microsoft.TeamFoundationServer.ExtendedClient
using System;
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.Client;
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.VisualStudio.Services.WebApi;
namespace vssApiTest
{
class Program
{
const String c_collectionUri = "https://[[redacted]].visualstudio.com/DefaultCollection";
const String c_projectName = "Inspections";
const String c_repoName = "Src";
static void Main(string[] args)
{
// Interactively ask the user for credentials, caching them so the user isn't constantly prompted
VssCredentials creds = new VssClientCredentials();
creds.Storage = new VssClientCredentialStorage();
// Connect to VSTS
VssConnection connection = new VssConnection(new Uri(c_collectionUri), creds);
// Get a GitHttpClient to talk to the Git endpoints
GitHttpClient gitClient = connection.GetClient<GitHttpClient>();
// Get data about a specific repository
var repo = gitClient.GetRepositoryAsync(c_projectName, c_repoName).Result;
}
}
}
在行 VssConnection connection = new VssConnection(new Uri(c_collectionUri), creds);
上,一个 TypeLoadException
被抛出(在 运行 时间)消息:
Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'. Derived types must either match the security accessibility of the base type or be less accessible.
None 的 Google 搜索变体我在这个错误消息上尝试过,返回了任何有用的东西。
我是不是做错了什么,我遵循的示例代码是错误的,还是存在其他问题?
问题是由于 System.Net.Http
Nuget 包的 4.1.0
版本中引入的错误,如 here 所述。
解决方案是将该 Nuget 包更新到最新版本(4.3.2
此时,可能 也已在早期版本中修复)。