2012-09-03 3 views
2

CLICKONCE 배포를 사용하여 .NET WINFORMS를 데이터베이스 파일 (SQLCE - * .sdf) 프로젝트와 함께 내 서버에 게시하려고합니다. 내 솔루션에서 C#을 사용하고 있습니다.Clickonce를 사용하여 sqlCE (*. sdf) 파일 게시

이 경기장에서 발생하는 문제는 데이터베이스 파일이 내 실행 파일과 다른 프로젝트에 있다는 것입니다. * .sdf가 포함 된 프로젝트는 기본 프로젝트에서 참조됩니다. 따라서 파일은 기본 프로젝트의 bin 폴더에 자동으로 복사되지만 (MainProject> Properties> Publish> Application Files) 볼 수 없으므로 내 서버에 파일을 게시 할 수 없습니다.

따라서 문제는 프로젝트 게시와 함께 * .sdf를 보낼 수 없다는 것입니다.

이 문제를 해결하려면 어떻게해야합니까?

1) 새 Windows Forms 응용 프로그램을 만듭니다

+0

파일을 기본 프로젝트로 이동 하시겠습니까? – ErikEJ

+0

@ErikEJ - 나와 같은 "다른 프로젝트"가 두 개의 다른 프로젝트에 의해 참조되는 경우 작동하지 않습니다. 예를 들어, 작은 GUI 인 ClickOnce 프로젝트가 하나 있지만 SqlCe 파일을 사용하여 해당 공용 DLL에 액세스해야하며 해당 공용 DLL 및 SqlCe 파일에 액세스해야하는 또 다른 큰 응용 프로그램이 필요합니다. 그것이 서로 다른 어셈블리로 분해되는 요점입니다. –

답변

0

이 지시를보십시오.

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 파일과 속성을보고 :

은 "빌드 작업"속성 "콘텐츠"로 설정되어 있는지 확인합니다.

"Copy to Output Directory"속성은 "Copy if newer"로 설정됩니다.

5) 프로젝트 속성 -> 탭을 게시 -> 보도 "응용 프로그램 파일"버튼

목록에서 데이터베이스 파일을 확인하고, 확인의 ") 데이터 파일 (자동"으로 설정되어있는 "상태를 게시"를 "다운로드 그룹"은 "(필수)"로 ​​설정됩니다.

6) 프로젝트 속성 -> 게시 탭 -> "게시"버튼을 클릭하면 응용 프로그램을 게시하여 Setup.exe 파일을 생성 할 수 있습니다.

설치 파일을 설치하면 데이터베이스 파일이 응용 프로그램 설치 폴더의 "데이터"폴더에 응용 프로그램과 함께 배포됩니다. exe.config 파일은 응용 프로그램 설치 폴더의 응용 프로그램과 함께 배포됩니다.

Original source

+0

현재이 문제는 데이터베이스 파일이 하나의 솔루션 내에 게시 된 프로젝트가 아닌 다른 프로젝트에 있기 때문에 sdf에 액세스 할 수 없다는 것입니다. 내가 접근 할 수있을 때까지 위의 경로로 이동합니다. 따라서 게시 할 때 응용 프로그램 파일 탭에서 선택하려면이 파일을 보유해야합니다. –

0

은 사용 가능한 몇 가지 옵션이있다. 두 가지 방법 모두 Visual Studio 외부에서 ClickOnce 배포를 만드는 것과 관련이 있습니다. 일단 기본을 뛰어 넘기를 원한다면 Visual Studio를 벗어나야합니다.

옵션 1) Mage 및 MageUI - ClickOnce 배포를 함께 사용할 수있는 Microsoft 도구입니다. 여기에 가이드가 있습니다. http://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx

옵션 2) ClickOnceMore - ClickOnce로 더 많은 작업을 수행 할 수 있도록 작성한 도구입니다. 프로젝트를 쉽게 만들고 기본 .exe 프로젝트 외부에서 파일을 추가 할 수 있습니다. 시작 가이드는 여기에서 있습니다 : http://clickoncemore.net/documentation/browser.php?page=quick_start_guide. 시나리오에서는 파일 포함 규칙을 하나 만들고 앱의 bin 디렉토리를 가리켜 야합니다.

솔루션 탐색기에서
0

1) 선택 SqlDatabase.sdf 파일과 속성을보고 :

은 "빌드 작업"속성 "콘텐츠"로 설정되어 있는지 확인합니다.

"Copy to Output Directory"속성은 "Copy if newer"로 설정됩니다.

2) 프로젝트 속성 -> 탭을 게시 -> 보도 "응용 프로그램 파일"버튼

목록에서 데이터베이스 파일을 확인하고 "다운로드 그룹"을 "포함"등의 "상태가 게시"설정되어 있는지 확인 "(필수)"로 ​​설정됩니다.

3) 프로젝트 속성 -> 게시 탭 -> 응용 프로그램을 게시하여 Setup.exe 파일을 생성하려면 "게시"단추를 클릭하십시오.

관련 문제