Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用winforms部署的sqlite数据库_C#_Winforms_Sqlite_Deployment_Setup Project - Fatal编程技术网

C# 使用winforms部署的sqlite数据库

C# 使用winforms部署的sqlite数据库,c#,winforms,sqlite,deployment,setup-project,C#,Winforms,Sqlite,Deployment,Setup Project,我对使用C#winforms应用程序部署sqlite数据库相当陌生。 我创建了一个安装项目,其中以下应用程序文件夹包含主输出(.exe文件) 程序将System.Data.sqlite作为其依赖项 在常规项目(未设置)中,数据库包含在bin->Debug->Appdata->Test.DB中 <connectionStrings> <clear /> <add name="RConnString" connectionString="Data Sour

我对使用C#winforms应用程序部署sqlite数据库相当陌生。 我创建了一个安装项目,其中以下应用程序文件夹包含主输出(.exe文件) 程序将System.Data.sqlite作为其依赖项

在常规项目(未设置)中,数据库包含在bin->Debug->Appdata->Test.DB中

 <connectionStrings>
    <clear />
  <add name="RConnString" connectionString="Data Source=App_Data\Test.db;Compress=True;Version=3"
      providerName="System.Data.Sqlite" />

  </connectionStrings>

对于安装:数据库及其相关依赖项将放在哪里(system.data.sqlite) 目前,此程序安装在C:\Programfiles。。。 还没有包括数据库

装运此sqlite Db的好地方是什么。还有,我该怎么做。我要将其放置在安装项目的何处。我需要自定义安装吗?

我们有Windows XP,Win 7个用户

这是一个理想的地方,如果每个用户的数据都在漫游配置文件位置下的目录中,通常是
C:\users\john\AppData\MyApplication
或其他什么。如果它是机器范围的数据(不是用户特定的),那么它应该放在
C:\ProgramData\MyApplication

我不确定您使用的是哪种类型的安装程序,但它应该有一种方法来指定这些位置(即“用户数据目录”或类似的东西)


您不想将数据库文件放在与应用程序可执行文件相同的安装位置,除非您只想从中读取。任何要写入的内容都需要进入上述两个位置中的一个。

这对于Vista和Win 7是正确的,但我认为XP没有ProgramData文件夹,也没有users文件夹(尽管有一个等效文件夹)。@kprobst:用户将使用Db(写入)。所以最好的位置应该是C:\Users\john\AppData\MyApplication(根据您的建议)。我正在使用.msi安装程序。目前,该程序安装在C:\program Files(x86)\Default Company Name\r安装位置。我是否应该将此路径更改为C:\Users\john\AppData\MyApplication。我可以写入用户AppData文件夹吗?这对Xp和7都有效吗。对不起,我想我还需要一点explanation@Trisped有一些标识符(通过
CSIDL
枚举)应该提供正确的位置,而不管操作系统版本如何。这就是使用shell获取路径的全部意义。@user1580726是的,但不要硬编码路径。确保使用安装程序的函数让它在shell中查询正确的命名位置。我认为VS安装程序可以做到这一点,大多数商业安装程序也应该做到这一点。