我在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()),他們都工作,我檢查了我的日誌,但沒有任何我可以看到,可以使它出錯。每個屬性都設置爲它應該是的。
UPDATE
這裏是我的項目WEBINSTALLDIR
所有引用(和WIXUI_WEBINSTALLDIR
,相當於WIXUI_INSTALLDIR
,和_WebBrowseProperty
,相當於_BrowseProperty
):
<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
我注意到,在日誌中,當我使用應用程序離子確實存在,WEBINSTALLDIR
沒有提到,而UI是活躍的,但它是當我選擇一個不存在的應用程序。
只是一個快速檢查,你的財產是否有屬性'安全=「是」設置? – 2013-03-19 16:10:47
@NatalieCarr不,但我不明白爲什麼這很重要。我沒有爲應用程序的安裝目錄('WIXUI_INSTALLDIR')設置它,並且一個工作正常。 – Netfangled 2013-03-19 16:16:52