如何一次单击即可将odata.client部署到用户计算机

时间:2019-07-06 07:09:43

标签: c# odata

我正在使用C#Visual Studio 2017和.net Framework 4.6.1开发应用程序桌面,并使用odata api。

我正在使用OData客户端代码生成器来创建代理,并使用Trippin服务进行仿真(https://services.odata.org/V4/(S(v35us2ydb4upkphl4id2qpwx))/TripPinServiceRW/)。

在我的开发机器中,一切都很好。当发布者单击一次部署到新计算机(Windows 7 + Framework 4.6.1)时,出现了可怕的问题。

  

System.TypeInitializationException:类型初始化器   “ ClientEdmModelCache”引发了异常。 ->   System.BadImageFormatException:无法加载文件或程序集   'System.Linq,版本= 4.0.0.0,区域性=中性,   PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。参考   程序集不应加载以执行。他们只能是   在“仅反射”加载器上下文中加载。 (来自HRESULT的异常:   0x80131058)---> System.BadImageFormatException:无法加载   参考程序集以执行。

下面是简单的代码,只有一个按钮和一个列表框

private void button1_Click(object sender, EventArgs e)
{
     var container = new DefaultContainer(new Uri("https://services.odata.org/V4/(S(v35us2ydb4upkphl4id2qpwx))/TripPinServiceRW/"));
     var stores = container.Airlines.ToList();
     foreach (var item in stores)
     {
         listBox1.Items.Add(item.AirlineCode + " - " + item.Name);
     }
}

我希望得到这样的结果

AA - American Airlines
FM - Shanghai Airlines
etc..
  

有关即时调用的详细信息,请参阅此消息的末尾   (JIT)调试而不是此对话框。   **************异常文本************** System.TypeInitializationException:的类型初始值设定项   “ ClientEdmModelCache”引发了异常。 ->   System.BadImageFormatException:无法加载文件或程序集   'System.Linq,版本= 4.0.0.0,区域性=中性,   PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。参考   程序集不应加载以执行。他们只能是   在“仅反射”加载器上下文中加载。 (来自HRESULT的异常:   0x80131058)---> System.BadImageFormatException:无法加载   参考程序集以执行。   ---内部异常堆栈跟踪的结尾---

     在

  Microsoft.OData.Edm.Vocabularies.EdmDirectValueAnnotationsManager.SetAnnotation(IEnumerable`1   immutableAnnotations,Object&transientAnnotations,字符串   namespaceName,字符串localName,对象值)

     在

  Microsoft.OData.Edm.Vocabularies.EdmDirectValueAnnotationsManager.SetAnnotationValue(IEdmElement   元素,字符串namespaceName,字符串localName,对象值,   VersioningDictionary`2&注解字典)

     在

  Microsoft.OData.Edm.Vocabularies.EdmDirectValueAnnotationsManager.SetAnnotationValue(IEdmElement   元素,字符串namespaceName,字符串localName,对象值)

     Microsoft.OData.Edm.ExtensionMethods.SetAnnotationValue(IEdmModel上的

  模型,IEdmElement元素,字符串namespaceName,字符串localName,   对象值)

     在Microsoft.OData.Edm.ExtensionMethods.SetEdmVersion(IEdmModel模型,   版本版本)

     在

  Microsoft.OData.Client.DataServiceContext.ClientEdmModelCache.CreateClientEdmModelCache()

     在

  Microsoft.OData.Client.DataServiceContext.ClientEdmModelCache..cctor()

0 个答案:

没有答案