我正在使用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()