2012-04-27 76 views
0

當部署ClickOnce應用程序時,安裝文件夾的URL有沒有辦法讓它相對於承載它的Web應用程序目錄?ClickOnce安裝文件夾URL相對

例如,對於本地測試,我發佈到http://localhost:54592。然而,當這種部署Web應用程序,它可能是從http://www.foo.com什麼http://www.foo.com/MyVirtualDirectory

我想的路徑找到其當前位置的安裝程序,安裝程序後,該應用程序已完成引用Web應用主機,不開發網址。

平臺:Visual Studio 2010,.NET 4.0和C#。

回答

2

如果您堅持使用*.application作爲您的應用程序源代碼,此工具即可使用。您只需在您的Web應用程序中選擇一個文件夾來發布您的ClickOnce應用程序,並且該應用程序可從您的應用程序下的此地址獲得。

例如,如果將您的網站複製到C:\inetpub\wwwroot\mysite並將ClickOnce複製到C:\inetpub\wwwroot\mysite\myappMyClickOnce.application在ClickOnce文件夾內。

然後,您將您的網站暴露爲http://example.com,並且ClickOnce應用程序在http://example.com/myapp/MyClickOnce.application下可用。

如果是setup.exe,需要在將清單發佈到目標位置後重新創建清單。這是通過mage.exe完成的。

+0

所以清單不能一般地指向像./appname這樣的東西,它實際上每次部署都必須進行編輯? – Sabre 2012-04-28 00:28:36

+0

是的,我相信是這樣。如果這不是真的,並有人糾正,我很樂意學習新的東西。 – 2012-04-28 19:25:27

+0

這就是我所害怕的,謝謝你的確認。 – Sabre 2012-04-29 02:20:22

1

在「選項」對話框的「清單」選項卡中,可以選中「排除部署提供程序URL」框。

然後根據您的放置位置提供URL給您的用戶進行安裝。當他們運行它時,它會創建並保存他們從哪裏獲得的URL,並始終在那裏尋找更新。

+0

謝謝,這可能會是一個更簡單的解決方案,我會在這個週末進行測試。 – Sabre 2012-05-18 14:24:39

+0

我可以確認,這適用於本地路徑上的部署。剛剛清除了*應用程序文件中的deploymentProvider代碼庫url,並將清單的代碼庫設置爲'。\ ApplicationFiles \ *。manifest' – Oxillery 2015-01-16 13:40:28

+0

*這是使用法師 – Oxillery 2015-01-16 13:58:18