2013-02-28 47 views
0

我使用這個讓我的應用程序的配置文件中的位置:真正的ClickOnce發佈應用程序的配置文件在哪裏?

string path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; 

但它並沒有給我的路徑實際上正在使用的文件。

我的問題是,我需要我的應用程序可以從Windows任務計劃程序運行,並且我希望它帶參數。我一直這樣做的方式是,當我在計劃程序中創建任務時,單擊瀏覽並找到appref-ms圖標。然後,計劃程序將填充文本框,在該文本框中我將輸入文件的路徑,並將路徑指向AppData\Local\Apps\2.0\...下的奇怪位置(而不僅僅是保留圖標的路徑)。這樣我也可以添加參數,一切工作正常,不像我嘗試過的其他東西,例如使用.exe文件的路徑或鍵入圖標的路徑,除了...

當應用程序從任務計劃程序使用與使用圖標啓動時不同的配置文件。假設我從任務計劃程序運行後將S設置更改爲值T(始終來自應用程序內)。然後當我從圖標運行時,我將設置S更改爲I。下一次我從任務計劃程序運行應用程序時,設置S將爲T,並且下一次從圖標運行它時,設置S將爲I。另外,在上面給出的代碼路徑中設置文件S只是默認值(不是T也不是I)。

這是一個很大的問題,因爲無論我如何運行應用程序,都需要我的設置相同。我正在考慮用我自己確定的位置替換我自己的文件的默認設置文件。這是我唯一的選擇嗎?是否有任何其他方式從任務計劃程序運行應用程序,以便我能夠傳遞參數,這些參數也會使用與從圖標運行時相同的配置文件?一段代碼會如何強制應用程序始終使用相同的配置文件?

回答

1

您可以將設置移動到每個人都可以找到它們的位置。如果它保存了任何內容,則無論如何您都需要這樣做,因爲ClickOnce更新可以清除用戶保存的設置。查看this article瞭解更多信息。

+0

這也意味着我將無法使用'Properties.Settings.Default ...'是這樣嗎? – Juan 2013-02-28 22:23:49

+0

我不使用.NET項目內置的設置文件。如果確實讓ClickOnce處理它們,有時會將它們複製到前面,有時則不會。它會部署任何新的東西,所以如果你有你想要使用的默認值,那將會起作用,但是如果你改變了它們,它就不會。我編寫了自己的配置管理器,將鍵/值對寫出到我在部署之外存儲的XML配置文件中。 – RobinDotNet 2013-03-04 07:00:43

0

我知道你可以從

INSTALLED_PATH = Application.StartupPath ; 

一種方法獲取應用程序安裝路徑可能是最早推出的應用程序,每個ClicOnce部署後,會從圖標。如果應用程序然後將INSTALLED_PATH保存到固定的文本文件中,那麼任務可以從那裏獲取路徑。這有道理嗎?

相關問題