wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了.net – 无法解析Assembly.dll的汇编大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个类库项目,使用Entity Framework,它工作正常,直到我将模型移动到一个单独的类库类型项目. 当我将模型移出到一个名为Model的单独的类库项目后,我将app / web.config中的连接字符串更改为如下所示: <add name="GlobalizationEntities" connectionString="metadata=res://Model.dll/Model
我有一个类库项目,使用Entity Framework,它工作正常,直到我将模型移动到一个单独的类库类型项目.

当我将模型移出到一个名为Model的单独的类库项目后,我将app / web.config中的连接字符串更改为如下所示:

<add name="GlobalizationEntities" 
connectionString="Metadata=res://Model.dll/Models.resourceGlobalizationModel.csdl|
res://Model.dll/Models.resourceGlobalizationModel.ssdl|
res://Model.dll/Models.resourceGlobalizationModel.msl;
provider=System.Data.sqlClient;
provider connection String=&quot;
Data source=MyComputer\sqlexpress;
Initial Catalog=DaDatabase;
Integrated Security=true;
MultipleActiveResultSets=True&quot;" 
providerName="System.Data.EntityClient" />

(我在上面的代码片段中包含换行符,只是为了可读性,我的代码没有那些换行符.)

现在,我的解决方案结构如下所示:

但是,在运行时我会收到一个FileNotFound异常:

System.IO.FileNotFoundException was unhandled by user code
  HResult=-2147024894
  message=Unable to resolve assembly 'Model.dll'.
  source=System.Data.Entity
  StackTrace:
       at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeresource.ResolveAssemblyName(String assemblyName,MetadataArtifactAssemblyResolver resolver)
       at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeresource.CreateresourceLoader(String path,Extensioncheck extensioncheck,String validExtension,ICollection`1 uriRegistry,MetadataArtifactAssemblyResolver resolver)
       at System.Data.Metadata.Edm.MetadataArtifactLoader.Create(String path,MetadataArtifactAssemblyResolver resolver)
       at System.Data.Metadata.Edm.MetadataCache.SplitPaths(String paths)
       at System.Data.Common.Utils.Memoizer`2.<>c__DisplayClass2.<Evaluate>b__0()
       at System.Data.Common.Utils.Memoizer`2.Result.GetValue()
       at System.Data.Common.Utils.Memoizer`2.Evaluate(TArg arg)
       at System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections)
       at System.Data.objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection()
       at System.Data.objects.ObjectContext..ctor(EntityConnection connection,Boolean isConnectionConstructor)
       at System.Data.objects.ObjectContext..ctor(String connectionString,String defaultContainerName)
       at resources.baseservices.Globalization.Models.resourceGlobalizationEntities..ctor() in C:\SVN\Model\resourceGlobalizationEntities.cs:line 7
       at resources.baseservices.Globalization.Models.Culture.IsValidCulture(String shortName) in C:\SVN\Model\Culture.cs:@R_19_5450@
       at resources.baseservices.Globalization.EntityFrameworkStringresourceLoader.set_Culturename(String value) in C:\SVN\BusinessObjects\EntityFrameworkStringresourceLoader.cs:line 129
       at resources.baseservices.Globalization.EntityFrameworkStringresourceLoader..ctor(String culturename,IDatasource datasourcE) in C:\SVN\BusinessObjects\EntityFrameworkStringresourceLoader.cs:line 19
  InnerException:

我尝试了两个客户端的场景,即控制台应用程序和MVC应用程序.

然控制台应用程序甚至不将BusinessObjects.dll及其引用的dll(即Model.dll)复制到控制台应用程序的bin目录,但MVC应用程序也不会.但是,他们似乎根本找不到Model.dll程序集,并引发上述FileNotFoundException.

1)在连接字符串的所有位置,将res://Model.dll/更改为res:// Model /(不包含’.dll’扩展名).您还可以指定装配的全名,例如:res:// Model,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null /(更多信息: https://msdn.microsoft.com/en-us/library/cc716756.aspx).

2)接下来,确保以下命名空间有效:Model.Models.resourceGlobalizationModel.如果没有,请更改连接字符串和/或组合名称.

大佬总结

以上是大佬教程为你收集整理的.net – 无法解析Assembly.dll的汇编全部内容,希望文章能够帮你解决.net – 无法解析Assembly.dll的汇编所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。