MSBuild исключить синтаксис не работает - PullRequest
3 голосов
/ 21 января 2012

У меня есть тестовый файл в MSBuild для создания ZIP. Мне нужно исключить определенные папки. У меня работает следующее.

<PropertyGroup>
  <TestZipPath>C:\path\to\my\folder\</TestZipPath>
  <ExcludeList>$(TestZipPath)\**\_svn\**;$(TestZipPath)\**\.svn\**;$(TestZipPath)\**\obj\**;$(TestZipPath)\**\*.config</ExcludeList>
</PropertyGroup>

<ItemGroup>
  <ZipFiles Include="$(TestZipPath)\**\*.*" Exclude="$(ExcludeList)"  />
</ItemGroup>

<Message Text="%(ZipFiles.FullPath)"/>

Это кажется мне ужасно многословным. В идеале я хотел бы, чтобы ExcludeList был отформатирован так:

<ExcludeList>**\_svn\**;**\.svn\**;**\obj\**;**\*.config</ExcludeList>

Но, похоже, это не работает. Почему мне нужно включать $ (TestZipPath) перед каждым шаблоном исключения? ** не предназначен для использования в начале пути? Есть ли лучший способ сделать это?

Ответы [ 2 ]

4 голосов
/ 24 января 2012

Я разобрался в проблеме. Проблема в том, что я пытаюсь включить файлы, которые не относятся к файлу msbuild, который я выполняю. MSBuild предполагает, что пути к файлам относятся к этому расположению, и не дает возможности изменить это. Из-за этого все мои пути должны быть абсолютными и не могут быть относительными.

1 голос
/ 21 января 2012

Попробуйте добавить '. \' Перед каждым шаблоном включения. Как это:

 '.\**\obj\**'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...