我已經在Win 7 RTM x64上創建了一個.NET C#WinForms應用程序,我們可以說我已經調用了DataInstaller。程序兼容性助手認爲我的應用程序是安裝程序
當我在調試器之外運行此程序(只是一個空的表單,此時沒有功能),它工作正常,直到我關閉表單。然後我從程序兼容性助手,說一個消息:
該程序可能沒有正確安裝
然後我得到使用推薦的設置重新安裝或者說,安裝沒有工作如預期的選項。
如果我命名應用程序'DataThingy',這不是問題,我想這與名爲* Setup的程序獲得UAC盾牌圖標的方式有關。
我認爲會有一些簡單的東西,我可以放在應用程序清單,以防止這種情況?
我不確定這是否發生在Vista上,因爲我目前沒有訪問權限。
更改名稱不是一個選項,關閉UAC不是一個選項,所以請不要提示!
編輯:
OMG。
看來,如果任一下列的都是真實的,UAC堅持在其槳:
埃克名稱包含單詞安裝
的AssemblyInfo.cs
AssemblyTitle contains the word 'Installer'
e.g. [assembly: AssemblyTitle("DataInstaller")]
AssemblyProduct contains the word 'Installer'
e.g. [assembly: AssemblyProduct("Data Installation Utility")]
「安裝」也可以是'安裝'。
乞丐的信念,它的確如此。很顯然,一位老的VB6程序員被搬到了雷德蒙的UAC團隊。
我仍然需要一種解決方法,我不準備接受我的應用程序不可能被稱爲安裝程序,因爲它不會觸摸註冊表或將任何文件放在Program Files文件夾中。
我假設如果我試圖執行名爲IAmAVirus.exe的應用程序,UAC會將機器置於完全鎖定狀態。 (其實,我不敢嘗試,因爲我不完全相信我只是傻)
實際上,Windows只是檢查「setup」或「install」等文件的文件名,以確定是否某個安裝程序是安裝程序。是的,這是愚蠢的...可以做些什麼呢?我想知道......好Q。 – 2009-10-16 11:05:12
我希望如此,因爲這對我來說太有意思了。「謝謝你的投票! – Carl 2009-10-16 11:15:35
@Wim - 不,它似乎是AssemblyTitle,就像帖子建議的那樣。在我的Win7 SP1機器上對PackageInstaller.exe進行驗證 - 如果程序集標題是PackageNstaller,則沒有問題 – 2013-07-26 14:54:24