1

共有するフォルダーの PathEdit コントロールもあります。ユーザーが同じ PathEdit コントロール (サポートされている) で UNC パスを入力できるようにしたい。

問題は、UNC パスが入力されているときに、インストール中にそれを共有しようとすることです。

UNCパスの場合に共有しないようにするにはどうすればよいですか?

コード スニペットは次のとおりです。

PathEdit コントロールの定義:

<!-- Target audio files directory -->
        <Control Id="lblAudioFilesDirectory" Type="Text" X="20" Width="100" Y="135" Height="18" NoPrefix="yes" Text="!(loc.AudioFilesDirectoryLabel)" />
        <Control Id="peAudioFilesDirectory" Type="PathEdit" X="120" Width="180" Y="135" Height="18" Property="PROP_AUDIODIR" Indirect="yes" />
        <Control Id="btnAudioFilesDirectory" Type="PushButton" X="305" Width="20" Y="135" Height="18" Text="!(loc.Browse)">
          <Publish Property="_BrowseProperty" Value="[PROP_AUDIODIR]" Order="1">1</Publish>
          <Publish Event="SpawnDialog" Value="Custom_BrowseDlg" Order="2">1</Publish>
        </Control>

ディレクトリ フラグメント:

<Directory Id="AUDIOFOLDER" Name="AudioFiles">
    <Component Id="cmpAUDIOFOLDER" Guid="{8BCFBEA2-9E7B-4E45-8838-6A71216C9B20}">
    <CreateFolder />
    <util:User Id="Everyone" Name="Everyone"></util:User>
    <util:FileShare Id="fsAudioFiles" Description="Audio files" Name="AudioFiles">
    <util:FileSharePermission User="Everyone" GenericAll="yes" />
    </util:FileShare>
    </Component>
</Directory>

条件付きの作業を行うことはできますか

<util:User Id="Everyone" Name="Everyone"></util:User>
        <util:FileShare Id="fsAudioFiles" Description="Audio files" Name="AudioFiles">
        <util:FileSharePermission User="Everyone" GenericAll="yes" />
        </util:FileShare>

パスが UNC でない場合にのみ機能させるには?

4

1 に答える 1

2

AComponentは、Windows インストーラーでのインストールの最小単位であるため、これを使用する必要がありますConditionDirectory/@Id問題のフォルダーが次のAudioFilesようなことができると仮定します。

<Component Id="cmpAUDIOFOLDER" Guid="PUT-GUID-HERE"
           Directory="AudioFiles">
   <!-- If the AudioFiles directory starts with a double backslash, it's a network
        share, so share it with everyone. -->
   <Condition>AudioFiles &lt;&lt "\\"</Condition>

   <CreateFolder />
   <util:FileShare Id="fsAudioFiles" Description="Audio files" Name="AudioFiles">
     <util:FileSharePermission User="Everyone" GenericAll="yes" />
   </util:FileShare>
</Component>
于 2013-04-17T13:12:39.763 に答える