我有一个.NET应用程序崩溃如果我在可执行文件的同一文件夹中有MySql.Data.dll程序集但如果我移动它工作正常.同一文件夹中的不同可执行文件依赖于它,因此我需要将其保留在那里.
我该怎么做才能让应用程序忽略这个dll?我假设我可以编辑配置文件,但我似乎找不到任何人有忽略本地.dll的问题,所以我不知道该写什么.
让我更加困惑的是关于在异常细节中编写的加载程序集的部分.请注意,本地文件夹(我想忽略的)中的文件是版本6.9.9.0,并且异常表明它要加载6.9.5.0,其中加载的文件(来自GAC)是6.9.8.0.
这是我的配置文件:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="DB" connectionString="*" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助.
************** Loaded Assemblies **************
---------------------------------------
MySql.Data
Assembly Version: 6.9.8.0
Win32 Version: 6.9.8.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/MySql.Data/v4.0_6.9.8.0__c5687fc88969c44d/MySql.Data.dll
----------------------------------------
Run Code Online (Sandbox Code Playgroud)
**************异常文本**************
System.IO.FileLoadException:无法加载文件或程序集MySql.Data,版本= 6.9.5.0,文化=中性公钥= c5687fc88969c44d'或它的一个依赖.定位的程序集的清单定义与程序集引用不匹配.(从HRESULT异常:0x80131040)文件名: 'MySql.Data,版本= 6.9.5.0,文化=中性公钥= c5687fc88969c44d'在System.Reflection.RuntimeAssembly._nLoad(的AssemblyName文件名,字符串的代码库,证据assemblySecurity,RuntimeAssembly locationHint, SystemCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks )System.Reflection.Asombly.Loa的System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,Evidence assemblySecurity,RuntimeAssembly reqAssembly,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks).d(AssemblyName assemblyRef)在System.Data.Metadata.Metadata.Eetm.MetadataAssemblyHelper.d__8.MoveNext()的System.Data.Metadata.Edm.MetadataAssemblyHelper.SafeLoadReferencedAssembly(AssemblyName assemblyName)处于System.Data.Metadata.Edm.DefaultAssemblyResolver.GetAllDiscoverableAssemblies(处于System.Data.Metadata.Edm的System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources(String assemblyName,String resourceName,ICollection
1 uriRegistry, MetadataArtifactAssemblyResolver resolver) at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader(String path, ExtensionCheck extensionCheck, String validExtension, …