Да, так и должно быть.
Именованные каналы ведут себя так же, как и анонимные каналы: они оба представляют один поток, который заканчивается, когда его закрывает последний создатель. В частности, читатель не должен зависать вечно на случай, если какая-то будущая программа решит открыть канал и продолжить запись.
Если вы хотите использовать пакетную связь через файл, как насчет использования сокета Unix в режиме дейтаграмм?
Только что нашел это ответ на этот старый вопрос. Чтобы обрабатывать пробелы, вы должны использовать escape-символ \ во всех папках. По сути,
/p:OutPath="c:\temp\deploy\fun and games\Deployment\bin\"
должно быть
/p:OutPath="c:\\temp\\deploy\\fun and games\\Deployment\\bin\\"
, и это волшебным образом работает!
Msbuild также, кажется, работает с пробелами в OutDir, если вы переключаете \ на /, используя кавычки:
/p:OutDir="c:/temp/deploy/fun and games/out/"
/p:WebProjectOutputDir="c:/temp/deploy/fun and games/Deployment/"
> "C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe"
> /t:Rebuild
> "C:\Projects\myProject.csproj"
/p:OutPath="c:\temp\deploy\funAndGames\Deployment\bin\"
----------------------------------------
/p:WebProjectOutputDir="c:\temp\deploy\fun and games\Deployment\"
----------------------------------------
> /p:Configuration=Release
Попробуйте это.
Также попробуйте через графический интерфейс VSStudio. Затем скопируйте настройки и попробуйте с помощью MS Build.