2009-10-11 120 views
2

我使用ClickOnce部署應用程序,問題是配置文件(xxx.exe.config)沒有嵌入到包中,因此沒有選項可以包含它。配置的另一個問題是,當我試圖手動將它寫入到它被刪除的目錄(Environment.CurrentDirectory)時,我收到一個異常 - 我沒有權限這樣做。ClickOnce配置部署 - 配置文件

關於如何與配置文件一起部署應用程序的任何想法? (並使其可寫,因爲TI的運行過程中的應用改變了配置值。)提前

+2

您是否嘗試過「複製到輸出目錄」選項的文件? (VS中的屬性窗口) – Restuta 2009-10-11 18:38:10

回答

2

配置文件應該自動發佈;如果沒有,確保它被配置爲複製到輸出,並且(如果失敗)檢查發佈文件(項目屬性 - >發佈 - >應用程序文件;配置文件應該被標記爲「包含(自動)」或「包含「)。

您不應該嘗試更新應用安裝目錄中的任何內容。這是一個壞主意一般(因爲你不能假設你可以更新「程序文件」,除非你是一個管理員),但ClickOnce也是如此。

只需創建一個設置文件,其中包含一些用戶設置;這些將被保存在用戶的配置文件中,因此可以可靠地進行更新。您無法編輯通過ClickOnce部署的文件;即使你有訪問權限,它也會(默認情況下)中斷散列函數,並且會拒絕加載它們。你可以關閉哈希,但是...這仍然不是一個好主意。

1

當你點擊你的項目的屬性並轉到項目的屬性的發佈選項卡

謝謝,單擊應用程序文件...然後選中「顯示所有文件」複選框。你應該看到一個選項,從那裏選擇你的應用程序配置文件。

根據我的經驗,< *> .exe.config文件通常設置爲自動包含。

3

您還可以更改要包含在ClickOnce deploy中的文件的構建操作:Properties for a file → Build Action → set to "Content",這會將該文件添加到Publish項目選項中的Application files列表中。

如果您需要從參考項目發佈文件,我沒有找到更好的解決方案,而不是Add → Existing Item → On "Add" button, select "Add as Link",然後將操作設置爲Content並檢查已發佈文件的列表。