У меня есть проект, который настроен как расширение оболочки с библиотекой SharpShell
. Когда я регистрирую его с помощью инструмента regasm
(с включенным флагом /codebase
), он работает до того момента, когда мне нужно использовать базу данных через EntityNetwork
. Я получаю эту ошибку:
Не удалось найти строку подключения с именем EntitiesName в
файл конфигурации приложения.
Но, конечно, у меня есть правильный ConnectionString
в файле config
. Похоже, что весь файл config
вообще не читается.
Итак, я нашел какое-то хакерское решение и поместил его в конструктор:
Dim assemblyLoc As String = [GetType].Assembly.Location
Dim configName As String = assemblyLoc + ".config"
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configName)
и кажется, что что-то прочитано, но не все, я получаю новую ошибку:
System.TypeInitializationException: инициализатор типа для 'System.Data.Entity.Internal.AppConfig' вызвал исключение. ---> System.Configuration.ConfigurationErrorsException: произошла ошибка при создании обработчика раздела конфигурации для entityFramework: не удалось загрузить файл или сборку 'EntityFramework, Version = 6.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089' или одну из его зависимостей. Система не может найти указанный файл.
Как я могу использовать файл конфигурации или как EntityFramework
с такими настройками?
Вот так выглядит мой config
файл:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="EntitiesName" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="***"" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
Я подозреваю, что мне может понадобиться Конфигурация на основе кода . Если это так, я бы оценил несколько vb.net
указателей в этом направлении.