Ответ 1
У меня было аналогичное требование, и использование $(MSBuildProjectName) выполняло эту работу для меня.
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<BaseIntermediateOutputPath>R:\$(MSBuildProjectName)\obj\</BaseIntermediateOutputPath>
</PropertyGroup>
Здесь R: это моя буква диска RAMDISK.
Для других, у кого также могут возникнуть проблемы с настройкой буквы диска RAMDISK, я использовал простой VBS script
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colVolumes = objWMIService.ExecQuery _
("Select * from Win32_Volume") Where Label = 'RAMDISK'")
For Each objVolume in colVolumes
objVolume.DriveLetter = "R:"
objVolume.Put_
Next
Это гарантирует, что любой диск, загруженный с помощью метки RAMDISK, будет установлен на диск R: вместо вместо диска по умолчанию. Хотя это не является частью вашего Q, я уверен, что это будет удобно для других, у которых есть аналогичные требования использования RAMDISK для их файлов obj, и найти случай изменения букв дисков в файлах vbproj/csproj громоздким.
Ссылки:
- Зарезервированные свойства: http://msdn.microsoft.com/en-us/library/ms164309%28loband%29.aspx
- Изменение букв дисков: http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/disk/drives/