Miałem projekt biblioteki klas, który korzystał z Entity Framework i działało dobrze, dopóki nie przeniosłem modelu do oddzielnego projektu typu biblioteki klas.Nie można rozpoznać zespołu Model.dll
Po przeniosłem model się do osobnego projektu biblioteki klasy nazwie modelu, zmieniłem ciąg połączenia w app/web.config w brzmieniu:
<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="
Data Source=MyComputer\sqlexpress;
Initial Catalog=DaDatabase;
Integrated Security=true;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
(podaję podziały wierszy .. w powyższym fragmencie na celu wyłącznie dla czytelności Mój kod nie ma tych podziałów wierszy)
teraz moja struktura rozwiązanie wygląda tak:
Jednak dostaję FileNotFound
wyjątek w czasie wykonywania, który brzmi:
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, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, 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:line 24
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:
Próbowałem scenariusz z 2 klientów, a mianowicie aplikacji konsoli i aplikacji MVC.
Podczas gdy aplikacja konsolowa nawet nie kopiuje BusinessObjects.dll
i jej odnośników do biblioteki DLL, a mianowicie Model.dll
do katalogu aplikacji konsoli bin
, robi to aplikacja MVC. Jednak oba wydają się nie znajdować w ogóle zespołu Model.dll
i podnieść wyżej wymieniony FileNotFoundException
.
Czy sprawdziłeś platformę (AnyCPU, x86) i strukturę docelową dla każdego projektu? –
Dziękuję. Tak. –
Użyj narzędzia Fuslogvw.exe, aby rozwiązać problemy z rozwiązywaniem zespołów. Jego ślad pokazuje, gdzie szukał pliku. –