點擊一次申請有人知道運行 clickonce 應用程式所需的語法嗎?我試過了
運行程式(這是可執行檔(「點擊一次應用程式」 ));
我認為這是行不通的。還有其他選擇嗎?
回覆:Clickonce應用程式使用 rundll32 方法,可以將參數傳遞給 clickonce 程序,如下所示:
RunProgram(
executable( "rundll32.exe" ),
options( {"dfshim.dll,ShOpenVerbShortcut","PathToShortcut.appref-ms|parameter"} ),
readfunction( "text" )
);
回覆:Clickonce應用程式rundll32 方法本身有效,但我找不到將參數傳遞給 .appref-ms 的方法。我最終透過使用以下方法解決了該問題:
RunProgram(
executable( "cmd.exe" ),
options(
{"/c",
"\!"PathToShortcut.appref-ms\!"",
"parameter"}
),
readfunction( "text" )
);我將雙引號加入 PathToShortcut.appref-ms 中,因為它有空格。
回覆:Clickonce應用程式經過足夠的探索後我想通了。
web(" clickonce application.appref-ms");
回覆:Clickonce應用程式以下內容可能有用,摘自:
http://www.brad-smith.info/blog/archives/535
啟動 ClickOnce 應用程式
與普通可執行檔不同,使用 ClickOnce 部署的應用程式是使用引導程式(通常由 shell 處理)啟動的。這包括用 Windows Forms、WPF 或 Silverlight 編寫的應用程式。 ClickOnce 應用程式的捷徑的副檔名為.appref-ms (而不是常規快捷方式的.lnk ),並且啟動命令無法識別這些檔案(如前面的範例所示)。
值得慶幸的是,它們可以使用以下語法運行:
1 | rundll32.exe dfshim.dll,ShOpenVerbShortcut [path to appref-ms file] |
其中[appref-ms 檔案的路徑]是 ClickOnce 捷徑檔案的完整路徑。例如,如果您想要指向使用者桌面上的捷徑,則路徑可能包含環境變量,例如%USERPROFILE% 。
這是如何運作的?
- rundll32指令執行 Win32 DLL 中的函數,就像它是可執行檔一樣。當您有一個主要從程式碼調用的函數(但仍然獨立運行)時,如果您想避免在單個DLL 就足夠的情況下創建許多可執行文件,或者故意混淆用戶不想要的命令,您可能需要使用此功能開始。
- dfshim.dll負責 ClickOnce 中的大部分功能;它包含安裝、刪除、啟動和更新應用程式的功能,並作為 .NET Framework 的一部分進行分發。
- 我們想要的函數名稱是ShOpenVerbShortcut ,它與 Windows shell 用於運行 .appref-ms 快捷方式檔案的函數相同。您只需將路徑傳遞給該函數,它就會處理其餘的事情。