【问题标题】:Publishing sqlCE(*.sdf) Files with clickonce使用 clickonce 发布 sqlCE(*.sdf) 文件
【发布时间】:2012-09-03 10:06:56
【问题描述】:

我正在尝试使用 CLICKONCE 部署将带有数据库文件 (SQLCE - *.sdf) 项目的 .NET WINFORMS 发布到我的服务器。我在我的解决方案中使用 C#。

我在这个体育场遇到的问题是我的数据库文件与我的可执行文件位于不同的项目中。包含 *.sdf 的项目在 Main 项目中被引用。因此,该文件在构建后会自动复制到主项目的 bin 文件夹中,但在(MainProject > Properties > Publish > Application Files)中看不到,因此我无法将其发布到我的服务器。

因此问题是,我无法在项目发布时发送 *.sdf。

我该如何解决这个问题?

【问题讨论】:

  • 将文件移动到主项目?
  • @ErikEJ - 如果像我一样,“其他项目”被两个不同的项目引用,那将不起作用。例如,我有一个 ClickOnce 项目,它只是一个小型 GUI,但需要访问带有 SqlCe 文件的公共 DLL,而另一个大型应用程序也需要访问该公共 DLL 和 SqlCe 文件。这就是将它们分解成不同程序集的全部意义所在。

标签: c# sql-server-ce clickonce publishing


【解决方案1】:

试试这个说明:

1) 创建一个新的 Windows 窗体应用程序。

2) 将数据源(选择数据库文件,例如 SqlDatabase.mdf)添加到您的项目中。

3) 将 DataGridView1 拖放到 Form1 上,并使用 |DataDirectory|数据库连接字符串中的路径。

Imports System.Data.SqlClient

Public Class Form1

'Binding database table to DataGridView

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim con As SqlConnection = New SqlConnection("Data Source=.;Integrated Security=True;AttachDbFilename=|DataDirectory|\SqlDatabase.mdf")

    Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Table1", con)

    con.Open()

    Dim myDA As SqlDataAdapter = New SqlDataAdapter(cmd)

    Dim myDataSet As DataSet = New DataSet()

    myDA.Fill(myDataSet, "MyTable")

    DataGridView1.DataSource = myDataSet.Tables("MyTable").DefaultView

    con.Close()

    con = Nothing

End Sub

End Class

4) 在解决方案资源管理器中选择 SqlDatabase.mdf 文件并查看其属性:

确保“构建操作”属性设置为“内容”。

“复制到输出目录”属性设置为“如果较新则复制”。

5) 项目属性 -> 发布选项卡 -> 按“应用程序文件”按钮

查看列表中的数据库文件,确保其“发布状态”设置为“数据文件(自动)”,“下载组”设置为“(必填)”。

6) 项目属性 -> 发布选项卡 -> 点击“发布”按钮发布您的应用程序以生成 Setup.exe 文件。

安装Setup.exe文件,数据库文件将与应用程序一起部署在应用程序安装文件夹的“Data”文件夹中。 exe.config 文件也将与应用程序一起部署在应用程序安装文件夹中。

Original source

【讨论】:

  • 此时的问题是我无法访问 sdf,因为数据库文件位于不同的项目中,而不是在一个解决方案中发布的项目。如果我可以访问它,那么我将走上述路线,直到那时我被卡住了。所以我需要掌握它,以便在发布下的应用程序文件选项卡中选择它。
【解决方案2】:

有几个选项可供您使用。两者都涉及在 Visual Studio 之外创建 ClickOnce 部署。一旦您想要超越基础知识,您就需要离开 Visual Studio。

选项 1) Mage 和 MageUI - 这是一个 Microsoft 工具,可用于组合 ClickOnce 部署。这里有一个指南:http://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx

选项 2) ClickOnceMore - 这是我编写的一个工具,可让您使用 ClickOnce 做更多事情。您可以轻松地创建一个项目并从主 .exe 项目之外添加文件。这里有一个入门指南:http://clickoncemore.net/documentation/browser.php?page=quick_start_guide。在您的场景中,您可能只需要创建一个文件包含规则并将其指向应用程序的 bin 目录。

【讨论】:

    【解决方案3】:

    1) 在解决方案资源管理器中选择 SqlDatabase.sdf 文件并查看其属性:

    确保“构建操作”属性设置为“内容”。

    “复制到输出目录”属性设置为“如果较新则复制”。

    2) 项目属性 -> 发布选项卡 -> 按“应用程序文件”按钮

    查看列表中的数据库文件,确保其“发布状态”设置为“包含”,“下载组”设置为“(必填)”。

    3) 项目属性 -> 发布选项卡 -> 点击“发布”按钮发布您的应用程序以生成 Setup.exe 文件。

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多