2016-11-15 131 views
0

我的C#控制檯應用程序嵌入了MS SQL Server Compact數據庫(.sdf文件)。當安裝新版本的應用程序時,該文件必須覆蓋而不是ClickOnce和SQL Server Compact數據庫

.sdf→文件屬性→構建動作:應該選擇哪個值?選項包括None,Compile,Content,Embedded Resource,EntityDeploy,ApplicationDefinition,Page,Resource,SplashScreen,DesignData,DesignDataWithDesignTimeCreatableData和XamlAppDef。

回答

0

構建操作應爲「無」,但更重要的是「複製到輸出目錄」。這應該是「如果更新,則複製」。

+0

我認爲複製到輸出目錄是決定構建時間的東西。我需要的是將ClickOnce setup.exe配置爲僅在不存在時才安裝.sdf ...軟件更新不得覆蓋它。可能嗎?怎麼樣? – haba713

+1

鑑於「複製文件,如果它不存在」不是一個選項,你最好的選擇是將其設置爲「總是複製」到設備上的臨時位置或文件名,然後讓你的C#代碼來測試if .sdf文件已存在,如果不存在,請將.sdf文件複製到適當的位置。我不知道,我知道。 –

+0

好的!連接字符串是'Data Source = | DataDirectory | \ MyDb.sdf'。因此,我將項目文件'MyDb.sbf'重命名爲'MyDbEmpty.sdf',並在'Progam.Main()'的開始處檢查'ApplicationDeployment.CurrentDeployment.DataDirectory'中是否存在'MyDb.sdf'文件,並且如果* not *,則將'MyDbEmpty.sdf'複製到'MyDb.sdf'。在VS調試運行中訪問'ApplicationDeployment.CurrentDeployment.DataDirectory'會引發異常並且必須處理它。 Mike Gledhill,感謝您的幫助! – haba713

相關問題