C# Clickonce SQL Server CE安装位置
我正在使用实体框架迁移、SQL Server CE 4.0和通过Clickonce分发 在我的C# Clickonce SQL Server CE安装位置,c#,entity-framework-4,windows-8,sql-server-ce,clickonce,C#,Entity Framework 4,Windows 8,Sql Server Ce,Clickonce,我正在使用实体框架迁移、SQL Server CE 4.0和通过Clickonce分发 在我的app.config中,datasource是datasource=| DataDirectory | Mydb.sdf <connectionStrings> <add name="MyContext" connectionString="DataSource=|DataDirectory|Mydb.sdf" providerName="System.Data.SqlServ
app.config
中,datasource
是datasource=| DataDirectory | Mydb.sdf
<connectionStrings>
<add name="MyContext" connectionString="DataSource=|DataDirectory|Mydb.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
问题是Windows 8智能屏幕出现提示,用户单击“继续”以继续运行,数据库是在应用程序(exe)目录中创建的,而不是上面的位置
如何明确告诉clickonce在上面的目录中创建数据库
我们发现:
由于Windows 8智能屏幕,它无法工作
|DataDirectory |替换字符串支持
|DataDirectory |(包含在管道符号中)是指示数据库路径的替换字符串。因此,您不必在代码中包含完整路径。在代码中包含完整路径时,可能会遇到问题,因为完整数据库路径可以在不同的位置序列化。| DataDirectory |替换字符串还可以方便地共享项目和部署应用程序
例如,如果在代码中包含完整路径,则应用程序可以具有以下连接字符串
数据源=c:\ProgramFiles\MyApp\Mydb.sdf
如果使用| DataDirectory |替换字符串,则应用程序可以具有以下连接字符串
数据源=|数据目录|\Mydb.sdf
要设置DataDirectory属性,请调用AppDomain.SetData方法。如果未设置DataDirectory属性,将应用以下默认规则访问数据库文件夹:•对于放在用户计算机文件夹中的应用程序,数据库文件夹使用应用程序文件夹。
•对于在ClickOnce下运行的应用程序,数据库文件夹使用创建的特定数据文件夹。
注意.NET Compact Framework不支持基于Microsoft Windows Mobile的设备上的AppDomain.SetData方法。如果应用程序在基于Windows Mobile的设备上调用AppDomain.SetData方法,则会收到错误消息
C:\Users\kev\AppData\Local\Apps\2.0\Data\8Y5K2R4J.AM9\Y3D5WADC.HAX\myapp..tion_ab2e572047b7b084_0001.0000_66744c6353cd31ca\Data