tôi có một dự án Silverlight 3 với một cái gì đó như thế này:MSBuild: Làm cách nào để tạo và sử dụng Tác vụ để chuyển đổi các mục Nội dung tại thời gian xây dựng?
<ItemGroup>
<Content Include="Content\image1.png">
</Content>
</ItemGroup>
Về cơ bản tôi đã thêm một tập tin PNG để dự án của tôi và thiết lập xây dựng hành động của mình để "Nội dung". Điều này hoạt động độc đáo.
Bây giờ những gì tôi muốn làm là có thể thêm hình ảnh trong một định dạng khác nhau để dự án của tôi, và họ đã chuyển đổi sang PNG ở thời gian xây dựng - vì vậy mà kết quả cuối cùng là như thể tôi đã đã thêm hình ảnh PNG vào dự án (dưới dạng Nội dung) ngay từ đầu.
Nói cách khác - tôi muốn hình ảnh xuất hiện, ở định dạng PNG, trong gói XAP của tôi. Lý tưởng nhất là tôi muốn làm điều này theo cách nó sẽ làm việc với Visual Web Developer 2008 Express (vì vậy tôi có thể thêm tập tin hình ảnh vào dự án của tôi bằng cách kéo chúng vào IDE và có thể thay đổi hành động xây dựng), và mà không thực hiện bất kỳ thay đổi nào trên toàn hệ thống.
Định dạng cụ thể mà tôi muốn chuyển đổi là XCF - Tôi đã có mã .NET để thực hiện chuyển đổi sang PNG. Tôi giả định rằng tôi phải create a MSBuild Task.
Tôi không thực sự có nhiều kinh nghiệm về MSBuild và tôi muốn biết cách đặt một thứ như vậy với nhau.
Dựa trên sự hiểu biết thô của tôi như thế nào MSBuild làm việc, tôi nghĩ rằng tôi cần phải biết:
- Làm thế nào để tạo ra một bộ sưu tập của các mục bằng cách (tái) di chuyển chúng từ
@(Content)
(hoặc một số khác) bộ sưu tập, dựa trên phần mở rộng tập tin của họ?- OR: Tạo một hành động tùy chỉnh xây dựng Tôi có thể sử dụng trong Visual Web Developer 2008 Express
- Làm thế nào để nhận được đường đi của mặt hàng đầu vào trong một
Task
? - Ở đâu (.NET hoặc MSBuild?) Và Cách chỉ định vị trí của tệp đầu ra được tạo bởi một
Task
? - Làm thế nào để đảm bảo rằng một tệp được xây dựng lại nếu tệp đầu vào của nó thay đổi?
- Trường hợp (có thể là
BeforeBuild
?) Và Cách để đưa lại các mục được chuyển đổi thành@(Content)
? (Hoặc tôi có nên sử dụng một số bộ sưu tập khác không?)- HOẶC: Một số cách khác để đưa chúng vào XAP?
Và nếu điều này có vẻ như một cách hợp lý để làm những việc hoặc nếu tôi đã bỏ lỡ bất cứ điều gì?
Tôi đã phát hiện ra rằng 'AvailableItemName' sẽ tạo một Action Build tùy chỉnh xuất hiện trong VWD. Tham khảo: http://msdn.microsoft.com/en-us/library/ms171468(VS.80).aspx –