работа с путями в msbuild - PullRequest
       4

работа с путями в msbuild

0 голосов
/ 04 января 2011

Я пытаюсь настроить виртуальный каталог, используя задачи msbuild и сообщества msbuild, но не могу найти способ указать относительный путь, который находится за пределами $(MSBuildStartupDirectory).

Мой проект структурирован так:

c:\proj\
  src\
    website        (this is where the virtual dir should point to)
  build\
    build.proj     (this is the msbuild file)

Я хотел бы сделать что-то вроде этого (обратите внимание, что $(MSBuildStartupDirectory) указывает на c:\proj\build):

<WebDirectoryCreate
  VirtualDirectoryName="website"
  VirtualDirectoryPhysicalPath="$(MSBuildStartupDirectory)\..\src\website" />

К сожалению, это не работает - «..» не разрешается, и виртуальный каталог затем указывает на c:\proj\build\..\src\website.

Может кто-нибудь подсказать мне, как работать с (относительно) пути в msbuild?

1 Ответ

3 голосов
/ 04 января 2011

Я попробовал это, и у меня все заработало. Я проверил это на Windows XP, используя msbuild 4.0 и задачи сообщества версии 1.3.0.504.

Я обычно использую MSBuildProjectDirectory, поскольку MSBuildStartupDirectory может указывать в другом месте, в зависимости от того, как был выполнен msbuild.

В приведенном ниже примере будет создан веб-сайт и удалены записи .. из пути с использованием метаданных FullPath.

<ItemGroup>
    <WebPath Include="$(MSBuildProjectDirectory)\..\src\website" />
</ItemGroup>
<Target Name="CreateWeb">
    <Message Text="WebPath=@(WebPath)" Importance="high" />
    <Message Text="FullPath=%(WebPath.FullPath)" Importance="high" />
    <WebDirectoryCreate
        VirtualDirectoryName="website"
        VirtualDirectoryPhysicalPath="%(WebPath.FullPath)" />
</Target>
...