Подстановочный знак для контента в проекте контента XNA? - PullRequest
1 голос
/ 13 июля 2010

У меня есть проект контента XNA 3.1 (.contentproj) со следующим:

<ItemGroup>
<Compile Include="tiles\B000N800.BMP">
  <Name>B000N800</Name>
  <Importer>TextureImporter</Importer>
  <Processor>TextureProcessor</Processor>
</Compile>
<Compile Include="tiles\B000N801.BMP">
  <Name>B000N801</Name>
  <Importer>TextureImporter</Importer>
  <Processor>TextureProcessor</Processor>
</Compile>
(... and so on ...)
</ItemGroup>

Что я хотел бы сделать, так это уметь указать подстановочный знак, чтобы вместо него компилировалась tiles\*.bmp -так что мне не нужно повторять синхронизацию проекта контента, когда я добавляю и удаляю текстуры из каталога "плиток".

Кто-нибудь знает способ сделать это?

В идеалерешение игнорирует скрытый каталог ".svn" в разделе "плитки".А также проект контента будет продолжать работать в Visual Studio.

Ответы [ 2 ]

3 голосов
/ 13 июля 2010

Вы должны будете использовать подстановочный знак в определении вашего предмета:

<ItemGroup>
  <Compile Include="tiles\**\*.BMP"
           Exclude="tiles\.svn\*">
    <Name>%(Compile.Filename)</Name>
    <Importer>TextureImporter</Importer>
    <Processor>TextureProcessor</Processor>
  </Compile>
</ItemGroup>
2 голосов
/ 13 июля 2010

Я нашел сообщение в блоге Шона Харгривза, в котором описано, как это сделать для XNA 1.0:

Подстановочный знак с использованием MSBuild

Исходя из этого, вот чтоЯ сделал то, что работает с XNA 3.1 (и не вызывает появления этих странных _0):

Создайте отдельный файл "tile.proj" со следующим содержимым:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<ItemGroup>
  <WildcardContent Include="tiles\**\*.BMP" Exclude="tiles\.svn\*">
    <Importer>TextureImporter</Importer>
    <Processor>TextureProcessor</Processor>
  </WildcardContent>
</ItemGroup>

<Target Name="BeforeBuild">
  <CreateItem Include="@(WildcardContent)" AdditionalMetadata="Name=%(FileName)">
    <Output TaskParameter="Include" ItemName="Compile" />
  </CreateItem>
</Target>
</Project>

Ив исходном файле «.contentproj» перед </Project> добавить:

<Import Project="tiles.proj" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...