2011-06-03 56 views
2

嗯,我使用Visual C++ 2010 Express和我的MIDI音序器的安裝應用的ResEdit 安裝在Windows 7上排除故障的兼容性PCA - 「此程序可能沒有正確安裝」

的Win32 API,沒有MFC,一些自定義窗口和控制類和這樣。

現在,我得到了Windows 7中,我黨SETUP程序是破產了。

的Windows給我的OLE「難道這個程序正確安裝?」啄。 這意味着我的安裝程序有些問題。

我試着去弄清楚這可能是...

我見過這2個SO線程:

"This program might not have installed correctly"

"This program might not have installed correctly" message in Windows 7 RC

而曾經使我這些地方:

http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx

http://msdn.microsoft.com/en-us/library/bb756937.aspx

http://msdn.microsoft.com/en-us/library/aa905330.aspx#wvduac_topic3

http://blogs.msdn.com/b/cjacks/archive/2009/06/18/pca-changes-for-windows-7-how-to-tell-us-you-are-not-an-installer-take-2-because-we-changed-the-rules-on-you.aspx

http://community.flexerasoftware.com/archive/index.php?t-189007.html

只有我使用註冊表項是標準的卸載點和 協會的文件類型。

SETUP在程序文件\ pianocheater目錄 中寫入一個dat.cfg文件,指向所有應用程序的數據所在的位置。 (只是一個文本文件,其中有一個路徑) (和一個用於該數據目錄中的臨時目錄等等.cfg目錄使用。)

所以我只從程序文件\ pianocheater後安裝READING。

有人可以想到爲什麼Windows不喜歡安裝? 源代碼位於http://shazware.com/_etc/SETUP_PIANOCHEATER.cpp 它使用我的窗口庫,控制類在精神上類似於mfc。 我也可以發送它的有用部分。

這對安裝應用程序並不是太糟糕。 對於一個win32傢伙/ gal應該是非常可愛的。

我可以uuuuuse一些he'p ...:/

噢,我要指出的是,圍棋()的入口點,而不是主要的()。 DBG()只是做OutputDebugString(),看起來都運行得很好。 TStr只是一個大字符[MAX_PATH](我不會做Unicode)

而這個技巧可能是我在win7 64位上,但這是一個32位的應用程序。 雖然我很確定我正在爲assoc和卸載點正確使用註冊表。

那麼,我應該做的清單xml的東西? 還是有更正確的方法來做事嗎?

感謝了,

...史蒂夫

+0

你爲什麼要編寫自己的安裝程序?爲什麼不使用工具來構建安裝程序?該工具將會正確。 – 2011-06-03 20:02:08

+0

好吧,我只是想自己做。這個應用程序是我的愛好,我只想知道安裝程序是做什麼的。 – 2011-06-04 15:21:54

回答

3

首先,檢查郵件是否是假陽性或沒有。您看到的消息旨在使用啓發式(可能錯誤!)來確定安裝程序是否因Windows Vista/7兼容性問題而失敗。如果您的安裝程序實際上與Windows 7/Vista兼容,那麼您只需添加清單declaring itself compatible。您還需要向清單中添加requestedExecutionLevel entry以請求提升。

如果您的安裝程序實際上失敗了,當然,那麼您應該先解決它。最後,如果由於啓動程序可執行文件提前退出等原因而顯示錯誤,請考慮通過向啓動程序添加適當的清單條目來抑制安裝程序檢測(如果發現錯誤,則可以使用的asInvoker if啓動程序不需要管理訪問權限; requestedExecutionLevel清單條目的存在應爲suppress installer detection)。請注意,您應確保使用ShellExecute來調用您的主安裝程序進程,而不是CreateProcess,否則UAC可能無法提升子進程。

+0

非常感謝 - 感謝幫助!好吧,我只是做清單的事情(reqExLevel和Vista,win7 guids)需要完成的一切(根據我)是。如果應用程序已安裝,我的應用程序也會重新安裝 - 在這種情況下,將不會有任何 - 添加 - 添加/刪除程序條目。我也會檢查一下,然後舉起雙手(只要表單能夠消除抱怨)。 – 2011-06-04 15:30:31