2012-04-05 24 views
1

我知道[TARGETDIR]將得到我的安裝目錄註冊表價值,但我也想可執行的名稱。我認爲它應該是像[TARGETDIR] [OUTPUTPATH]或可能只是[OUTPUTPATH],但我找不到包含我正在安裝的可執行文件的名稱的安裝程序屬性上的任何內容。如何添加包含在Visual Studio部署項目的可執行文件路徑在安裝

我需要此信息在安裝時將其放入註冊表中。我知道我可以用我的項目中的一個自定義動作來做到這一點,但我寧願只是使用安裝程序屬性。

+1

難道你不知道可執行的要安裝的名字嗎? [Here](http://msdn.microsoft.com/en-us/library/aa370905%28v=vs.85%29.aspx)是所有屬性的列表,它看起來不像它有你想要的 – 2012-04-05 20:05:36

+1

是的,我知道這個名字,但是我不想對這個值進行硬編碼,以防某些人在以後出現並改變它。 – jww 2012-04-05 20:18:39

回答

0

我認爲[AssemblyPath]可能工作
(沒有它在我面前來測試,如果我記得右)

+0

[AssemblyPath]返回一個空字符串。 – jww 2012-04-05 22:02:28

+0

是的,似乎從安裝程序在C#中工作 - 你需要從(設置項目)註冊表區域我猜測這個。我認爲你的最佳選擇是在你的應用程序或lib中添加一個自定義動作和映射到安裝程序類 - 這將從安裝項目中調用。在那裏你可以有你的應用程序名稱(通過調用Assembly.GetExecutable等),並從那裏添加註冊表。讓我知道如果你需要更多的信息 - 我會重寫我的答案,包括/刪除。 – NSGaga 2012-04-05 22:33:58

+0

我最終做的是 1)將[TARGETDIR]傳遞給自定義操作,如http://msdn.microsoft.com/en-us/library/9cdb5eda%28v=vs.100%29.aspx 2)使用基本System.IO在自定義操作的OnAfterInstall方法中搜索該目錄中的「* .exe」文件。在我的情況下,只有1個.exe文件,所以我可以確定這是我剛剛安裝的應用程序。 (然後,我可以將該路徑添加到註冊表或做任何我想要的) – jww 2012-04-05 23:56:01

相關問題