我正在尝试使用CLICKONCE部署将带有数据库文件(SQLCE - * .sdf)项目的.NET WINFORMS发布到我的服务器。我在我的解决方案中使用C#。
我在这个体育场遇到的问题是我的数据库文件与我的可执行文件不同。包含* .sdf的项目在Main项目中引用。因此,文件一旦构建就会自动复制到Main项目的bin文件夹中,但在(MainProject> Properties> Publish> Application Files)中无法看到它,这使我无法将其发布到我的服务器。
问题在于,我无法将* .sdf与项目的发布一起发送。
我如何去解决这个问题?
答案 0 :(得分:0)
试试这条指令:
1)创建一个新的Windows窗体应用程序。
2)将Add Data Source(选择数据库文件,例如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)在Solution Explorer中选择SqlDatabase.mdf文件并查看其属性:
确保“Build Action”属性设置为“Content”。
“复制到输出目录”属性设置为“如果更新则复制”。
5)项目属性 - >发布标签 - >按“应用程序文件”按钮
检查列表中的数据库文件,并确保其“发布状态”设置为“数据文件(自动)”,“下载组”设置为“(必需)”。
6)项目属性 - >发布标签 - >单击“发布”按钮以发布应用程序以生成Setup.exe文件。
安装Setup.exe文件,数据库文件将与应用程序一起部署在应用程序安装文件夹的“Data”文件夹中。 exe.config文件也将与应用程序安装文件夹中的应用程序一起部署。
答案 1 :(得分:0)
您可以选择几种选择。两者都涉及在Visual Studio外部创建ClickOnce部署。一旦你想要超越基础知识,你就需要离开Visual Studio。
选项1)Mage和MageUI - 这是一个微软工具,可用于组合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目录。
答案 2 :(得分:0)
1)在Solution Explorer中选择SqlDatabase.sdf文件并查看其属性:
确保“Build Action”属性设置为“Content”。
“复制到输出目录”属性设置为“如果更新则复制”。
2)项目属性 - >发布标签 - >按“应用程序文件”按钮
检查列表中的数据库文件,并确保其“发布状态”设置为“包含”,“下载组”设置为“(必填)”。
3)项目属性 - >发布标签 - >单击“发布”按钮以发布应用程序以生成Setup.exe文件。