我有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
但仍然无法正常工作。
就像Jon Skeet在上面的评论中解释的那样,
RestSharp.Net2
package包含its own implementation of System.Linq.Xml
,它与.NET Framework 4.0中的System.Linq.Xml
实现冲突。你不能有两个相同的实现。System.Linq.Xml
的实现。这就是为什么一揽子计划首先提供一个。System.Linq.Xml
。
VB有much fancier support for 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'