我有vs 2010,32 OS机器,max framework 4.0;
我用C#语言创建了一个空网站,我在其中添加了以下DLL:
我添加了对这些dll的引用并使用了那些对象...当我运行网站时 - >它运行成功,结果按预期返回;
当我在VB中做同样的事情时(通过创建一个新的空网站并在其bin文件夹中添加dll然后引用它们) - >我可以使用那些对象,但在编译中抛出了多个错误,例如:
错误1'XElement'在命名空间中不明确 'System.Xml.Linq的'。 InternalXmlHelper.vb
错误3'XName'在名称空间'System.Xml.Linq'中是不明确的。 InternalXmlHelper.vb
错误7'XAttribute'在名称空间'System.Xml.Linq'中不明确。 InternalXmlHelper.vb
....
可能是什么问题?
更新
我发现每当我删除对RestSharp dll的引用时,错误都不会在构建时显示,但如果我运行代码 - >显示错误是因为API正在使用此库,您可以看到。
VB代码:
Imports CompanyX.Api
Imports CompanyX.Client
Imports CompanyX.Model
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Configuration.SetApiKey("OurKey")
Configuration.SetTest()
Dim api As New JobsApi()
Dim key As New JobKey()
key.Id = "KeyID"
Dim Job = api.GetJob(key.Id)
Dim response = Job.ToString()
End Sub
End Class
C#代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CompanyX.Api;
using CompanyX.Client;
using CompanyX.Model;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Configuration.SetApiKey("OurKey");
Configuration.SetTest();
JobsApi api = new JobsApi();
JobKey key = new JobKey();
key.Id = "KeyID";
Job job = api.GetJob(key.Id);
String response = job.ToString();
}
}
我尝试在VB解决方案中添加Imports System.Linq
,但仍无效。
答案 0 :(得分:1)
就像Jon Skeet在上面的评论中所解释的那样,
为什么无法编译?
因为RestSharp.Net2
package包含its own implementation of System.Linq.Xml
与.NET Framework 4.0中的System.Linq.Xml
实现冲突。你不能有两个相同的实现。
但为什么会这样呢?
因为该程序包应该与.NET Framework 2一起使用,而该程序没有System.Linq.Xml
的实现。这就是为什么一揽子计划首先提供一个。
但为什么它适用于C#?
因为与VB不同,C#不会单独使用System.Linq.Xml
。
VB有much fancier support用于XML,它带有InternalXmlHelper.vb
模块,你无法摆脱它并导致错误,因为它试图使用System.Linq.Xml
命名空间。
如果您使用例如C#,您将在C#中收到编译错误XElement
。只需将System.Xml.Linq.XElement x = null;
添加到C#代码就足以导致
错误CS0433
类型'XElement'存在于'RestSharp.Net2,Version = 102.7.0.0,Culture = neutral,PublicKeyToken = null'和'System.Xml.Linq,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'< / p>
那我该怎么办?
或者: