Как избежать кавычек в команде Exec в MSBuild

Я пытаюсь создать MSBuild script, который сопоставляет сетевой диск с буквой диска в script, но, к сожалению, путь к целевой папке включает встроенное пространство. Вложенное пространство приводит к сбою отображения, и я не знаю, можно ли избежать кавычек по пути. Я пробовал двойные кавычки, но MSBuild не нравится (либо это, либо Windows XP не нравится). Кто-нибудь знает, как закодировать этого зверя, чтобы карта работала?

<Exec Command="net use x: \\ofmapoly703\c$\program files\ar\iap /user:$(UserID) $(Password)"
WorkingDirectory="c:\"
ContinueOnError="false"
/>

Вложенное пространство, конечно, происходит в "программных файлах".

Ответ 1

Используйте &quot;, чтобы закодировать двойные кавычки, которые вы хотите видеть net внутри значения атрибута Command:

<Exec Command="net use x: &quot;\\ofmapoly703\c$\program files\ar\iap&quot; /user:$(UserID) $(Password)" 
WorkingDirectory="c:\" 
ContinueOnError="false" 
/> 

Ответ 2

Вы можете использовать одинарные кавычки для команды, например

  <Exec Command='explorer.exe "$(DestinationDir)"' IgnoreExitCode="true" />

(Из Задача MSBuild exec без блокировки)

Ответ 3

Для меня использование одинарных кавычек вместо " это лучшее решение. Потому что ". Это может привести к проблемам, когда вы пытаетесь сделать XmlPoke, его перемещение в символы пробела смешно: от" к <