我正在使用Visual Studio 2015创建一个MSI。我想检查TARGETDIR中已存在的某个文件,并将搜索结果传递给c#中的自定义操作。到目前为止,我在“启动条件”视图中创建搜索并相应地设置属性。
然后,我将自定义操作视图中的属性名称作为自定义数据参数传递:
/ CONFIG_EXISTS = “[CONFIG_EXISTS]”
但是当我在自定义操作代码中读取值时,其值为空,但我希望找到一个bolean,至少是字符串。
protected override void OnAfterInstall(IDictionary savedState){
var existingConfig = Context.Parameters["CONFIG_EXISTS"]; // Always has "" as value
.... // Other code
我在这里缺少什么?如何进入我的自定义操作c#编码搜索条件的结果?
答案 0 :(得分:1)
您的搜索失败,因为它在TARGETDIR初始化之前很早就在安装中运行(请记住,TARGETDIR也可以通过提供安装文件夹的对话框进行更改)。因此,您应该根据标准Windows Installer文件夹属性重新定义搜索,例如ProgramFilesFolder,CommonFilesFolder等,完整列表如下: