Указанный путь метаданных недопустим при установке на диск, отличный от C - PullRequest
0 голосов
/ 20 января 2020

Кажется, у меня проблема с платформой сущностей. Некоторое время я искал ответ и не смог решить его с помощью перечисленных ниже вещей. Итак, вот что происходит.

Я использую EF6 и создаю MSI с помощью wix. Если я установлю свое приложение на диск C: \, все будет в порядке. Если я устанавливаю приложение на любой другой диск, оно устанавливается нормально, но меня приветствует эта ошибка:

"Указанный путь метаданных недействителен. Допустимый путь должен быть либо существующим каталогом , существующий файл с расширением .csdl, .ssdl или .msl или URI, идентифицирующий встроенный ресурс. "

Приложение, с которым я работаю, является windows сервис. Я прочитал некоторые статьи, которые заставляют меня думать, что моя проблема может быть связана с этим, но я не уверен в этом.

Это происходит, когда приложение сначала пытается получить информацию из БД. На диске C не возникает проблем с получением информации из БД, на любом другом диске - ошибка, описанная выше. Следует отметить, что БД находится на другом сервере, с которого я устанавливаю приложение. Я пробовал это на нескольких компьютерах с похожими результатами.

Строка подключения и настройки EDMX Обработка артефактов метаданных на edmx установлена ​​на Внедрение в выходную сборку.

Это моя строка подключения.

<add name="GenericName" connectionString="metadata=res://*/Models.GenericName.csdl|res://*/Models.GenericName.ssdl|res://*/Models.GenericName.msl;provider=System.Data.SqlClient;provider=System.Data.SqlClient;provider connection string=&quot;data source=DBIP;initial catalog=DBName;user id=DBUserName;password=DBPassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Вот некоторые вещи, которые я до сих пор безуспешно пробовал.

  1. Изменена часть res строки подключения my на res: / / * /;
  2. Изменена обработка артефактов моих метаданных для копирования в каталог вывода.
  3. Увидел, что в месте установки содержались файлы csdl, ssdl и msl.
  4. Проверено что те же файлы устанавливаются при установке на другой диск.
  5. Проверено, что edmxResourcesToEmbed имеет файлы csdl, msl и ssdl.
  6. Сравнил строки edmx / connection с другими приложениями, работающими с разных дисков .
...