如何更改我的C#自定義操作中的安裝程序屬性?更改C#自定義操作中的安裝程序屬性
9
A
回答
15
要訪問WiX屬性(例如使用Property元素設置的屬性),請使用會話對象的索引器 。以下是一個示例:
[CustomAction]
public static ActionResult CustomAction1(Session session)
{
string myProperty = session["MY_PROPERTY"];
return ActionResult.Success;
}
設置屬性同樣簡單。您將通過引用您的財產的名稱爲 的密鑰來設置該值。下面是一個示例:
[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session["MY_PROPERTY"] = "abc";
return ActionResult.Success;
}
如果在設置它時該屬性不存在,它將被創建。同樣,您可以通過將 的值設置爲空來清除屬性。從自定義操作創建或更改屬性值 不會阻止安裝程序在安裝日誌中顯示 中的那些屬性。所以,如果一個屬性擁有應該隱藏的信息,那麼您最好先在您的WiX標記中聲明它並將其隱藏屬性 設置爲yes。
<Property Id="MY_PROPERTY" Hidden="yes" />
0
你不能。只有Win32 DLL和VBScript 立即操作具有對安裝程序屬性的寫入權限。任何其他自定義操作類型只能通過其命令行或通過CustomActionData接收屬性。
這裏是一個C++ DLL自定義操作教程:http://www.codeproject.com/KB/install/msicustomaction.aspx
獲取和設置Windows Installer屬性,你可以使用MsiGetProperty()和MsiSetProperty()。
相關問題
- 1. 自定義操作安裝程序
- 2. 在Visual Studio安裝程序中添加C++自定義操作
- 3. 自定義安裝操作
- 4. 更改NSIS安裝程序屬性
- 5. 安裝程序安裝程序的自定義操作不在C#/ .NET中工作
- 6. Windows安裝程序中的自定義操作
- 7. 使用WinForm作爲Windows安裝程序自定義操作
- 8. 自定義c#安裝程序類
- 9. 在自定義操作中停止安裝錯誤使用WIX安裝程序
- 10. 使用安裝程序的自定義操作項目
- 11. 在自定義安裝程序操作期間的UI
- 12. 停止自定義操作的安裝
- 13. 自定義安裝程序
- 14. vs2010 Windows安裝程序自定義操作中的混合模式程序集
- 15. 如何在Visual Studio 2010中爲c#安裝程序編寫自定義操作?
- 16. C++/cli安裝項目中的自定義操作
- 17. 如何從自定義操作強制回滾安裝程序?
- 18. Windows安裝程序自定義操作錯誤1631
- 19. WIX安裝程序與delphi自定義操作
- 20. 將自定義操作添加到WiX安裝程序
- 21. Msi自定義操作安裝程序:錯誤1001
- 22. .Net安裝程序,自定義操作問題
- 23. 從自定義操作安裝程序類
- 24. 微星自定義操作安裝程序狀態交互
- 25. 如何獲取屬性值和msihandle從運行安裝程序到託管自定義操作(C#)
- 26. 靜默安裝程序的WiX 3.5在C#\自定義操作。NET
- 27. 自定義操作上只安裝
- 28. 安裝自定義操作上卸載
- 29. 去安裝。執行自定義操作
- 30. 如何將安裝目錄從安裝程序傳遞到自定義操作?
如果您使用DFT編寫託管CA,該怎麼辦? – 2011-04-21 12:20:24
是的,答案很好,但只是部分正確。安裝程序類(從Visual Studio)不能訪問屬性,因爲沒有安裝程序句柄的編組或遠程處理。然而,更好的託管自定義操作解決方案通過抽象如Session [「property」]或通過安裝程序句柄上的直接P/Invoke提供訪問。 – 2011-04-22 12:35:29