我使用EntityFramework和wpf在c#中创建了一个应用程序。 当我创建安装程序时,它可以在我的计算机上正常工作,但是当我在另一台计算机上安装它时,会出现此错误
发生文件激活错误。物理文件名
\Data\myDb.mdf
可能不正确。诊断并纠正其他错误,然后重试该操作。 CREATE DATABASE失败。列出的某些文件名无法创建。检查相关错误。
这是我的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>
答案 0 :(得分:1)
您可以尝试在运行时设置|DataDirectory|
的值:
AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\Program Files (x86)\Company\AppFolder\")
或在配置文件中用绝对路径替换|DataDirectory|
。