У меня есть 3 проекта Silverlight с чем-то вроде этого:MSBuild: Как создать и использовать задачу для преобразования элементов контента во время сборки?
<ItemGroup>
<Content Include="Content\image1.png">
</Content>
</ItemGroup>
В основном я добавил файл PNG в мой проект и установить его действие сборки для «Content». Это хорошо работает.
Теперь то, что я хотел бы сделать, это иметь возможность добавлять изображения в другом формате для моего проекта, и они преобразуются в PNG во время сборки - так что конечный результат, как если бы я был добавили PNG-изображение в проект (как Content) в первую очередь.
Другими словами - я хочу, чтобы изображение отображалось в формате PNG в моем пакете XAP.
В идеале я хотел бы сделать это так, чтобы он работал с Visual Web Developer 2008 Express (поэтому я могу добавлять файлы изображений в свой проект, перетаскивая их в IDE и, возможно, меняя их действие сборки) и без каких-либо общесистемных изменений.
Конкретный формат, который я хочу преобразовать, это XCF. У меня уже есть код .NET для преобразования в PNG. Я предполагаю, что должен create a MSBuild Task.
У меня действительно не так много опыта работы с MSBuild, и я хотел бы знать, как свести это вместе.
Основываясь на моем грубом понимании того, как работает MSBuild, я думаю, что мне нужно знать:
- Как создать коллекцию элементов по (ре), перемещая их из
@(Content)
(или другая) коллекция, основанная на их расширении файла?- ИЛИ: Создание пользовательского Build Action можно использовать в Visual Web Developer 2008 Express
- Как Получать путь входных элементов в
Task
? - Где (.NET или MSBuild?) И Как указать расположение выходных файлов, сгенерированных
Task
? - Как обеспечить восстановление файла при изменении его входного файла?
- Где (возможно,
BeforeBuild
?) И как перевести конвертированные товары в@(Content)
? (Или я должен использовать какую-то другую коллекцию?)- ИЛИ: Какой-то другой способ получить их в XAP?
И если это кажется разумным способом, чтобы делать вещи, или если я пропустил что-нибудь?
Я обнаружил, что 'AvailableItemName' создаст пользовательское действие сборки в VWD. Ссылка: http://msdn.microsoft.com/en-us/library/ms171468(VS.80).aspx –