ConnectionString с DataDirectory (c #, sqlserver) - PullRequest
1 голос
/ 11 апреля 2019

Я создал приложение в c # с wpf, используя EntityFramework. Когда я создаю установку, она отлично работает на моем компьютере, но когда я устанавливаю ее на другой компьютер, я получаю эту ошибку

Произошла ошибка активации файла. Физическое имя файла \Data\myDb.mdf может быть неправильным. Диагностируйте и исправьте дополнительные ошибки и повторите операцию. СОЗДАТЬ БАЗУ ДАННЫХ не удалось. Некоторые имена файлов не могут быть созданы. Проверьте связанные ошибки.

Вот мой App.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="myConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;
             AttachDbFileName='|DataDirectory|\Data\myDb.mdf';
             Initial Catalog=myDb.mdf; Integrated Security=True" providerName="System.Data.SqlClient" />

      </connectionStrings>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
      </startup>
      <entityFramework>
        <defaultConnectionFactory type="EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
    </configuration>

1 Ответ

1 голос
/ 11 апреля 2019

Вы можете попытаться установить значение для |DataDirectory| во время выполнения:

AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\Program Files (x86)\Company\AppFolder\")

Или заменить |DataDirectory| на абсолютный путь в вашем файле конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...