2012-07-16 40 views
0

我的clickonce應用程序具有必須包含在應用程序根目錄中的.ini文件(來自3方dll的配置文件)。 我添加了文件作爲鏈接並標記爲「內容」和「複製如果更新」。 問題是,我每次部署更新時,clickonce再次下載文件覆蓋所有更改。Clickonce「copy if newer」總是下載文件

爲什麼clickonce不尊重「copy if newer」?

回答

1

爲什麼clickonce不尊重「複製如果更新」?

因爲編譯器在複製到bin時(或者將二進制文件編譯到的地方)會使用它。此設置與clickonce無關。

我會建議將您的INI重命名爲「base.ini」或一些等價物。當您的應用程序啓動時,如果並且只有在它不存在的情況下才將它複製到新文件中。事情是這樣的:

if (!File.Exists("yourinifile.ini")) 
{ 
    File.Copy("base.ini", "yourinifile.ini"); 
} 

編輯

您可以標記你的文件在你的ClickOnce清單的數據文件。要做到這一點,

  1. 打開項目
  2. 的屬性,選擇「發佈」選項卡
  3. 單擊「應用程序文件...」按鈕
  4. 找到您的INI文件中的文件列表,並將發佈狀態更改爲「數據文件」。
+0

那麼,只有更新纔有下載文件的方法嗎?我的意思是,開箱即用 – Alexandre 2012-07-16 20:22:36

+0

@Alexandre我做了一個編輯,可以提供一個開箱即用的解決方案。 – vcsjones 2012-07-16 20:33:48

+0

問題是第三方DLL需要ini文件在同一個目錄下 – Alexandre 2012-07-16 20:35:02