Msbuild 无法识别映射的网络驱动器

Msbuild 无法识别映射的网络驱动器

我们有一个构建项目,并且有一个构建后事件。构建后事件将输出 DLL 复制到目录 F。系统应该将所有 DLL 放在 F 驱动器中。在我的系统中,我无法对驱动器进行分区以添加 F 驱动器,因此我将一个虚拟 F 文件夹映射为 F 驱动器。

F drive -> \\<PC IP>\C$\F\

当我使用 Visual Studio 2008 构建解决方案时,构建后事件成功。但是当我尝试使用命令行 msbuild 构建解决方案时,它失败并显示“指定的驱动器不存在”。有什么想法可以欺骗 powershell 相信 F 驱动器存在吗?我可以使用 Windows 资源管理器正确导航到 F 驱动器,并且正如我之前所说,使用 IDE 时构建后事件成功。

使用的powershell命令行:

msbuild MySolution.sln /p:Configuration=Debug /p:Platform="Any CPU"

请注意,我的系统是 Windows 7 Professional。我尝试使用 Windows XP 执行相同的 msbuild,没有问题。我也以管理员权限运行了命令提示符。

答案1

如果您想在本地计算机上伪造驱动器号,请使用SUBST映射网络驱动器。

Subst /?

Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

因此您应该能够使用类似的东西c:\> subst F: C:\F

还要确保您在与 Powershell/MSBuild 运行相同的用户空间中替换驱动器(或映射它)。如果您以本地用户身份映射驱动器,而 MSBuild 以“管理员身份”运行,它将无法看到您的用户映射驱动器(反之亦然)。

相关内容