我有一个自定义操作,需要获取以下值,以便将某些部件从安装文件夹复制到VS2010文件夹
VS2010DEVENV属性)INSTALLLOCATION属性)为了提供足够的特权,我将自定义操作设置为Execute='deferred' Impersonate='no'。但在运行安装程序时,它会记录消息:
无法从非即时自定义操作访问会话详细信息。
似乎我们不能在“延迟”自定义操作(即session["VS2010DEVENV"])中访问属性。
还有其他方法可以根据需要检索这些值吗?
发布于 2011-09-05 10:34:00
这一定很有帮助。特别注意页面底部,一个关于如何通过CustomActionData传递值的两个步骤的指南。
以下是节选:
若要将属性值写入安装脚本,以便在延迟执行自定义操作期间使用:
发布于 2014-05-19 18:56:30
其他详细信息:可以在“自定义操作类型51”中使用以下语法传递多个属性值(基本上是设置属性值的自定义操作):
PROPERTY1=Value1;PROPERTY2=Value2;PROPERTY3=...可以从自定义操作中检索值,如下所示:
string prop1 = session.CustomActionData["PROPERTY1"];
string prop2 = session.CustomActionData["PROPERTY2"];下面是一个设置ID为“MyCustomAction”的自定义操作的属性值的示例:
<CustomAction
Id="SetCustomActionPropertyValues"
Property="MyCustomAction"
Value="INSTALLDIR=[INSTALLDIR];EXECUTABLE=[#MyExecutableFile]" />(有关格式化语法的更多细节,请阅读http://msdn.microsoft.com/library/aa368609.aspx,该语法在本例中用于检索ID为“MyExecutableFile”的文件的安装位置)
https://stackoverflow.com/questions/7306367
复制相似问题