- tôi có một loạt các tập tin tùy chỉnh trong một dự án visual studio 2010.
- Tôi cần chạy công cụ trên các tệp tùy chỉnh đó khi chúng thay đổi.
- Công cụ tạo tệp .h được bao gồm bởi các tệp .cpp hiện có.
- Tôi muốn công cụ chạy như một phần của quá trình xây dựng.
- Nó cần phải chạy từ trong studio trực quan, nhưng lý tưởng cũng có thể chạy như một phần của quá trình msbuild.
hiện các giải pháp không đạt tiêu chuẩn
Trên mỗi tập tin, mỗi khi tôi thêm nó, tôi có thể đi đến các thiết lập tập tin, thiết lập các loại mục Custom Build Tool, và sau đó trong Tuỳ chỉnh xây dựng Công cụ đối thoại, thiết lập các tham số dòng lệnh, thiết lập các đầu ra (hardcoded), và thiết lập các phụ thuộc bổ sung (hardcoded).
Rõ ràng, đây là giải pháp kém vì đó là số lượng công việc không đáng kể và dễ bị lỗi mỗi khi bạn thêm tệp mới của loại tùy chỉnh.
Các giải pháp mong muốn
tôi thiết lập visual studio rằng đối với bất cứ tập tin của .foo mở rộng, nó chạy công cụ bar.exe, khi những thay đổi tập tin .foo, trước khi nó biên dịch mã CPP.
Những điều tôi đã cố gắng
Dựa trên điều này: http://msdn.microsoft.com/en-us/library/3e889s84(v=vs.100).aspx Tôi đã cố gắng để thiết lập một .targets và file .xml. Tuy nhiên, tôi không thể tìm ra cách tạo một Item Item mới như vậy cho thấy nó xuất hiện trong studio trực quan, và tôi cũng không thể tìm ra cách làm cho nó trở nên kỳ diệu áp dụng cho mọi file kiểu .foo. Ngày đầu đó, tôi đã không figured làm thế nào mà bất kỳ liên kết đến bất cứ điều gì mô tả các hành động gọi công cụ bar.exe của tôi.
Tôi đã cố gắng tìm kiếm trong tất cả các tệp xml/mục tiêu của studio trực quan để theo dõi các Loại mục hiện có và xác định cách chúng được dịch sang hành động xây dựng thực tế. Nó luôn luôn kết thúc tại bức tường của ItemType, nơi có một bó được mô tả trong ProjectItemsSchema, nhưng tôi không thể tìm thấy nơi chúng được thực hiện, hoặc làm thế nào tôi có thể thực hiện chúng bản thân mình.
Tài liệu của MSDN đã thất bại hoàn toàn và tôi nghĩ rằng tôi đã đọc tất cả các trang có liên quan có thể có mười lần, không có kết quả.
Trong visual studio 2008, tôi đã có loại điều làm việc với một tập tin .rules trông như thế này:
<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
Name="Foo Build Rules"
Version="8.00"
>
<Rules>
<CustomBuildRule
Name="FooBuild"
DisplayName="FooGen"
CommandLine="..\..\tools\FooGen.exe [inputs]"
Outputs="$(InputName).h"
AdditionalDependencies="*.foo"
FileExtensions="*.foo"
ExecutionDescription="Generating Foos..."
>
<Properties>
</Properties>
</CustomBuildRule>
</Rules>
</VisualStudioToolFile>
Tuy nhiên, chức năng này đã bị phản đối trong năm 2010, và tôi đã không thể tìm ra làm thế nào để tái tạo nó với hệ thống mới.
Trợ giúp?
Bạn đã kiểm tra điều này chưa? http://msdn.microsoft.com/en-us/library/xfsbz6cw(v=vs.100).aspx – hege
Đó là những gì tôi đã sử dụng trong năm 2008. Chúng không còn hoạt động trong năm 2008. –
Tôi cho rằng bạn phải đọc này cũng vậy: http://blogs.msdn.com/b/vcblog/archive/2010/04/21/quick-help-on-vs2010-custom-build-rule.aspx. Những gì bắt mắt của tôi là theo điều này, bạn cần một tập tin .props quá, có thể đó là những gì bạn đang mất tích. Đã không thử bản thân mình mặc dù .... – hege