无法对 UNC 路径/网络驱动器执行操作

问题描述 投票:0回答:1

我正在尝试使用 WiX 创建一个安装程序,该安装程序有一个通过 UNC 路径写入网络驱动器的步骤,但无论我做什么,我都会遇到错误“无法访问网络位置”:

enter image description here

有问题的网络位置存在并且可供安装程序进程访问。

这是我尝试过的:

  • 通过
    SetDirectory
    指定相关目录:
<SetDirectory Action="SetInstallDir" Id="INSTALLFOLDER" Value="\\tsclient\Z\VMSharedFolder\Docs">INSTALLFOLDER=""</SetDirectory>
  • 通过命令行指定有问题的目录:
msiexec /i Wixv3.msi INSTALLFOLDER="\\tsclient\Z\VMSharedFolder"
  • 使用安装中实际未使用的目录(如下
    MYPERSONALFOLDER
    );注意我还尝试将此目录根植到众所周知的上一级文件夹,如此处建议
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFiles64Folder">
    <Directory Id="INSTALLFOLDER" Name="WixV3">
      <Component Id="test" Guid="95AB91F2-7DFE-4D1C-8114-BF1D07AD440C" Win64="yes" >
        <File Id="test.txt" Source="Files\test.txt" KeyPath="yes" Checksum="no"/>
      </Component>
    </Directory>
  </Directory>

  <Directory Id="MYPERSONALFOLDER" Name="WillBeReplaced"/>
</Directory>

<SetDirectory Action="SetInstallDir" Id="MYPERSONALFOLDER" Value="\\tsclient\Z\VMSharedFolder\Docs">MYPERSONALFOLDER=""</SetDirectory>
  • 通过命令行设置
    WIXUI_DONTVALIDATEPATH
msiexec /i Wixv3.msi WIXUI_DONTVALIDATEPATH="1"  
  • 在 XML 中设置
    WIXUI_DONTVALIDATEPATH
<Property Id="WIXUI_DONTVALIDATEPATH" Value="1" />
  • 使用指向网络驱动器路径的“特殊”文件夹 - 在本例中为
    My Documents
    。请注意,这是我的应用程序的实际生产场景,也是首先出现此问题的原因 - 我们的一些用户在网络驱动器上拥有其
    My Documents
    文件夹。
<Directory Id="PersonalFolder" Name="UserHomeDocuments"/>
  • 升级到 Wix 5 - 我在 Wix 5 上尝试了一些但不是全部上述解决方法。例如,“特殊文件夹”解决方案如下所示:
<StandardDirectory Id="PersonalFolder" />

但是以上解决方案都不起作用;它们都失败并出现与上面相同的错误消息。这让我得出结论,WiX 或 MSI 安装程序通常在 UNC 路径/网络驱动器方面存在问题。这让我更加困惑,因为这似乎是一个受支持的场景(通过在互联网上搜索)。

有人能告诉我这里到底发生了什么以及根本的问题是什么吗?正如我上面提到的,我无法避免写入网络驱动器的需要,因为我们有一个用例。

wix windows-installer unc wix3 network-drive
1个回答
0
投票

我在尝试访问网络映射驱动器时遇到了类似的问题。该问题源于网络位置的映射方式。以下是情况的细分以及我为解决该问题所采取的步骤:

  1. 初始映射:网络位置最初映射为 “user1”使用“app1”。

  2. 访问尝试:当我尝试使用以下命令访问同一位置时 “app2”以“admin”身份运行,我遇到了可访问性问题。

  3. 故障排除:为了诊断问题,我尝试访问 通过 PowerShell 进行网络定位,均以“user1”身份运行 “行政”。有趣的是,只有 PowerShell 实例运行为 “user1”能够访问该位置。

  4. 解决方案:为了缓解访问问题,我将“app2”作为“user1”运行, 成功绕过了这个问题。

根据此经验,网络驱动器似乎应该以确保所有用户均可访问的方式进行映射,或者应将 WIX 安装程序配置为以有权访问该位置的用户身份运行。

© www.soinside.com 2019 - 2024. All rights reserved.