VS安装程序自定义操作问题

时间:2009-02-03 16:05:26

标签: visual-studio installer custom-action

如果您在同一个安装部署项目中包含Web应用程序合并模块和exe合并模块,则每个合并模块的自定义操作中的Context.Parameters [“AssemblyPath”]值会搞乱。尝试创建一个具有Web项目和这样的应用程序项目的安装部署项目:

  1. 创建Web项目
  2. 为该网络项目创建合并模块
  3. 创建常规App项目
  4. 为该应用创建合并模块
  5. 创建包含上述合并模块的安装项目
  6. 为自定义安装程序创建项目。
  7. 在Commit()方法覆盖中,访问Context.Parameters [“AssemblyPath”]并调试打印出值。
  8. 将此自定义操作项目输出添加到两个合并模块。 现在进行安装。 您可能希望打印不同的值,具体取决于调用此自定义操作的合并模块。但它们是一样的!有时它是c:\ inetpub \ wwwroot,有时它是C:\ MyAppDir ......
  9. 合并模块文件最终会在正确的位置结束:
    Web项目内容转到C:\ Inetpub \ wwwroot \
    App项目进入'module retargetable folder' 您还会注意到每个合并模块中包含的customactions.dll最终会出现在正确的位置(一次是c:\ inetpub \ wwwroot \,另一个是'module retargetable folder')。

    但Context.Parameters [“AssemblyPath”]的调试打印将在两种情况下显示相同的值(即两个合并模块)。它将是C:\ Inetpub \ wwwroot \ CustomActions.dll 或<targetdir> \ CustomActions.dll。这是错的!

    调试打印应显示
    当调试打印来自基于Web项目的合并模块时,C:\ Inetpub \ wwwroot \ CustomActions.dll 当调试打印来自基于应用程序项目的合并模块时,<targetdir> \ CustomActions.dll。

    有人知道为什么每个合并模块没有更新该值吗?这是Microsoft VS中的错误吗?

0 个答案:

没有答案