安装期间路径不可用错误

时间:2013-03-19 15:53:55

标签: iis iis-7 wix

我在Visual Studio 2012中有一个WiX项目,它允许用户选择安装应用程序,服务器或两者。我的问题是当用户选择两者时。

我有一个与此类似的目录树:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="Company" Name="My company">
      <Directory Id="INSTALLDIR" Name="My application"/>
    </Directory>
  </Directory>
  <Directory Id="inetpub" Name="inetpub">
    <Directory Id ="WEBINSTALLDIR" Name="wwwroot"/>
  </Directory>
</Directory>

所有东西都被丢弃在各自的文件夹中。我制作了基本上是InstallDirDlg的副本和具有不同属性名称的BrowseDlg,以选择服务器文件的安装位置。仅当用户选择在IIS中创建新的虚拟应用程序时才会显示它们(如果他选择现有应用程序,则自定义操作只会抓取其物理路径)。

在我选择创建新应用程序之前单击下一个按钮,一切正常。安装程序会挂起一段时间(当我选择现有应用程序时不会挂起)然后给我一个致命的错误消息:The specified path 'WEBINSTALLDIR' is unavailable.(错误1314)

我调试了所有自定义操作(System.Diagnostics.Debugger.Launch())并且它们都工作了,我已经检查了我的日志,但是没有什么我能看到它可能会出错。每个属性都设置为它应该是什么。

更新

以下是我项目中WEBINSTALLDIR的所有引用(和WIXUI_WEBINSTALLDIR相当于WIXUI_INSTALLDIR_WebBrowseProperty,相当于_BrowseProperty):< / p>

<Property Id="WIXUI_WEBINSTALLDIR" Value="WEBINSTALLDIR"/>

...

<Control Id="PhysicalPath" Type="PathEdit" X="20" Y="160" Width="320" Height="18" Property="WIXUI_WEBINSTALLDIR" Indirect="no" />

...

<Feature Id="Server" /*snip*/ ConfigurableDirectory="WEBINSTALLDIR">

...

<ComponentGroup Id="Server" Directory="WEBINSTALLDIR">

...

<Property Id="_WebBrowseProperty" Value="WEBINSTALLDIR"/>

...

<Publish Dialog="WebInstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_WEBINSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="WebInstallDirDlg" Control="ChangeFolder" Property="_WebBrowseProperty" Value="[WIXUI_WEBINSTALLDIR]" Order="1">1</Publish>

更新2

我在日志中注意到,当我使用确实存在的应用程序时,在UI处于活动状态时未提及WEBINSTALLDIR,但是当我选择不存在的应用程序时。

2 个答案:

答案 0 :(得分:1)

听起来你可能没有正确解除引用属性,而是将'WEBINSTALLDIR'视为文字路径。

您在哪里引用WEBINSTALLDIR

或者另一个可能的原因是能够写入该文件夹的权限。

乍一看参考文献看起来很好。可能是权限。尝试将Directory的{​​{1}}条目移动到与应用程序其余部分相同的目录中。如果可行,则可能无法访问WEBINSTALLDIR文件夹

答案 1 :(得分:0)

经过一段时间的愚弄,我发现了问题。

原来我的PathEdit控件挂钩到我的路径属性,Indirect设置为no而不是yes,所以它使用我的属性名称作为路径,而不是查找其值。

相关问题