2011-09-13 5 views
1

Wix 3.6을 사용하여 IIS 7에 웹 응용 프로그램을 설치하면 설치가 제대로 작동하지만 프로그램 추가/제거 또는 MSIExec를 사용하여 응용 프로그램을 제거 할 때 IIS에서 다음 오류가 발생합니다.WIX 3.6 IIS 7 설치 프로그램에서 '사이트 1에는 루트 응용 프로그램이 정의되어 있지 않으므로 사이트가 무시됩니다.' 오류시 제거

이 작업을 수행하는 동안 오류가 발생했습니다. 세부 사항 : '/'응용 프로그램이 없습니다.

시스템 로그의 오류는 다음과 같습니다.

사이트 1에는 루트 응용 프로그램이 정의되어 있지 않으므로 사이트는 무시됩니다.

MSIExec을 사용할 때 제거시 로그 파일과/qb 옵션은이 오류를 보여 주며 IIS의 기본 웹 사이트 디렉터리가 손상 될 수 있지만 이러한 유형의 문제가 발생할 수있는 것처럼 보입니다.

작업 시작 7시 4 분 40 초 : ExitDialog. DEBUG : 오류 2726 : 작업이 없습니다 발견됨 : ExitDialog 설치 관리자가이 패키지를 설치하는 중에 예기치 않은 오류 을 발견했습니다. 이 패키지에 문제가 있음을 나타낼 수 있습니다. 오류 코드는 2726입니다. 인수는 다음과 같습니다. ExitDialog,, 작업이 7:04:40 : ExitDialog에서 종료되었습니다. 반환 값 0. 작업이 종료되었습니다. 7:04:40 : INSTALL. 반환 값 1.

여기는 wix 파일의 관련 부분입니다. 누구든지 올바른 방향으로 나를 가리킬 수있는 아이디어가 있다면 크게 환영 할 것입니다. 미리 감사드립니다.

<Product 
     Name="$(var.WebName)" 
     Id="*" 
     UpgradeCode="GUID" 
     Manufacturer="MyCo" 
     Version="$(var.ProductVersion)" 
     Language="1033"> 
    <Package Id='*' 
     InstallScope="perMachine" 
      Manufacturer="MyCo" 
      InstallerVersion="200" 
      Languages="1033" 
      Compressed="yes"/> 

    <MajorUpgrade Schedule="afterInstallValidate" 
     DowngradeErrorMessage='A later version of this application is already installed. Setup will now exit'></MajorUpgrade> 

    <Media Id="1" Cabinet="MyProduct.cab" EmbedCab="yes" /> 

    <Property Id="IISROOT"> 
     <RegistrySearch Id="WEBROOT" Root="HKLM" Key="Software\Microsoft\InetStp" Name="PathWWWRoot" Type="raw" /> 
    </Property> 
    <Property Id="WIXUI_INSTALLDIR" Value="FILEINSTALLDIR" Secure="yes" > 
     <RegistrySearch Id="WIXUI_INSTALLDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="InstallDir" /> 
    </Property> 
    <Property Id="WIXUI_VIRTUALDIR" Secure="yes" Value="VIRTUALDIR" > 
     <RegistrySearch Id="WIXUI_VIRTUALDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="WixUiVirtualDir" /> 
    </Property> 
    <Property Id="VIRTUALDIR" Secure="yes" Hidden="no" > 
     <RegistrySearch Id="VIRTUALDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="VirtualDir" /> 
    </Property> 
    <CustomAction Id="FILEINSTALLDIR" Property="FILEINSTALLDIR" Value="[IISROOT]\[VIRTUALDIR]" /> 

    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="IISROOT" Name="."> 
     <Directory Id="FILEINSTALLDIR" Name="AppDirectory"> 
      <Component Id="MyCo_AppComponent" Guid="GUID"> 
      <File Source=... 
    </Component> 
     </Directory> 
     </Directory> 
    </Directory> 

    <iis:WebSite Id="DefaultWebSite" Description="Default Web Site" SiteId="*"> 
     <iis:WebAddress Id="AllUnassigned" Port="1" /> 
    </iis:WebSite> 

    <DirectoryRef Id="FILEINSTALLDIR"> 
     <Component Id="MyCoSiteComponent" Guid="GUID" KeyPath="yes"> 
     <iis:WebVirtualDir Id='AppComponentVirtDir' Alias='[VIRTUALDIR]' Directory='FILEINSTALLDIR' 
         WebSite='DefaultWebSite'> 
      <iis:WebDirProperties Id="AppComponentVirtDirProperties" 
         AnonymousAccess="no" BasicAuthentication="no" 
         WindowsAuthentication="yes" /> 
      <iis:WebApplication Id='MyAppName' Name='[VIRTUALDIR]' Isolation='medium' /> 
     </iis:WebVirtualDir> 
     </Component>   
    </DirectoryRef> 
+0

명명 된 레지스트리 설정이 있었다 : 나는 레지스트리 설정을 제거

<Property Id="WIXUI_VIRTUALDIR" Secure="yes" Value="VIRTUALDIR" > <RegistrySearch Id="WIXUI_VIRTUALDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="WixUiVirtualDir" /> </Property> 

: 나는 레지스트리에서 값을 설정

lookup과 다르게, 원래 코드에 포함시키지 않았으므로 아래에 잘못된 코드 예제가 포함될 것이므로 제거하는 것이 좋습니다. – likestoski

답변

0

는 내가 그 원래의 코드에 내가 포함됩니다 포함되지 않았기 때문에, 그것을 제거를 한 후 조회에 다른 이름이 된 레지스트리 설정이 있었다, 내가 잘못하고 있었는지 알아 냈어 아래의 나쁜 코드 예. 레지스트리 경로가 다르다는 점에 유의하십시오. 1) MyCo 2) MyCompany (데모 용이지만 내 표류를 얻습니다.) 이로 인해 기본 웹 사이트가 손상되어 교체해야했습니다. 따라서 짧게 말해서 레지스트리 키 이름의 이름이 올바르게 지정되었는지 확인하십시오! :) 이것은 고통스러운 것이 었습니다.

내가 잘못하고 있었는지 알아 냈
<DirectoryRef Id="FILEINSTALLDIR"> 
    <Component Id="RegistryEntries" Guid="GUID"> 
    <RegistryKey Root="HKLM" 
       Key="SOFTWARE\MyCompany" 
      Action="createAndRemoveOnUninstall"> 
     <RegistryValue Type="string" Name="WixUiVirtualDir" Value="[VIRTUALDIR]" /> 
    </RegistryKey> 
    </Component> 
</DirectoryRef>