1

У нас есть проект, который строит и имеет событие после сборки. Событие после сборки копирует выходную DLL в каталог F. Предполагается, что система поместит все библиотеки DLL на диск F. В моей системе я не могу разделить диск, чтобы добавить диск F, поэтому я назначил фиктивную папку F как диск F.

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

Когда я собираю решение с использованием Visual Studio 2008, событие после сборки проходит успешно. Но когда я пытаюсь построить решение с использованием командной строки msbuild, происходит сбой, и появляется сообщение "Указанный диск не существует". Любая идея, как обмануть PowerShell, чтобы поверить, что диск F существует? Я могу правильно перейти на диск F с помощью проводника Windows, и, как я уже говорил ранее, событие после сборки успешно выполняется при использовании IDE.

Используемая командная строка powershell:

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

Обратите внимание, что моя система - Windows 7 Professional. Я попытался сделать то же самое msbuild, используя Windows XP, и нет проблем. Я также запустил командную строку с правами администратора.

1 ответ1

2

Если вы хотите подделать букву диска на локальном компьютере, используйте 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 будет работать как «Администратор», он не сможет увидеть ваш подключенный диск пользователя (и наоборот).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .