簡體   English   中英

如何確定ClickOnce應用程序的Web原始文件夾?

[英]How do I determine the web origin folder of a ClickOnce application?

我有一個部署為ClickOnce應用程序的C#應用​​程序。 安裝文件可以位於我們的Web服務器上的三個可能的文件夾之一中:Alpha,Beta和Production。 用戶在IE中找到適當的位置以啟動應用程序:www.foo.com/Alpha、www.foo.com/Beta或www.foo.com/Prod。 在測試中,我們首先將安裝文件復制到Alpha,然后(通過測試時)復制到Beta,然后(通過用戶接受時)復制到生產。 沒有重新編譯。

我想知道的是C#代碼在運行時是否可以通過任何方式知道它是哪個版本:Alpha,Beta或Production。 它僅基於ClickOnce安裝文件所在的文件夾。請記住,沒有重新編譯。

有什么線索嗎?

謝謝!

您可以使用自定義清單元素來執行此操作,但是這需要進行一些后生成處理。

通過打開AppName.exe.manifest文件上的文件流,然后解析XML以查找和讀取自定義元素,應用程序即可訪問清單文件。 清單被部署到與可執行文件相同的目錄。

將應用程序文件復制到Web服務器文件夾時,只需修改清單以添加自定義元素(從技術上講,它甚至可以是XML注釋,如果您不想使用XML解析器,則可以通過簡單的文本比較進行解析)。

清單(在每個文件夾中)被修改后,必須使用mage.exe簽名工具對其重新簽名。

您可以相當容易地使用Shell腳本自動執行此操作。 總體而言,構建不同的實際版本可能要簡單得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM