Tôi đang phát triển ứng dụng di động dựa trên Cordova qua mẫu Cordova của Visual Studio cũng như ứng dụng web ASP.NET MVC trong cùng một giải pháp Visual Studio. Tôi muốn có thể chia sẻ càng nhiều HTML giữa hai dự án càng tốt. Một vấn đề mà tôi đang gặp phải là việc đóng gói và rút gọn diễn ra trong ASP.NET không có sẵn trong dự án Cordova. Bất kỳ ý tưởng làm thế nào tôi có thể hỗ trợ minification trong Visual Studio trên cả hai dự án mà sẽ cho phép tôi để chia sẻ càng nhiều mã càng tốt?Chia sẻ mã giữa dự án ASP.NET MVC và dự án Cordova
Trả lời
Tệp dự án của Cordova .jsproj
là tệp xây dựng thông thường được xử lý bởi MSBuild, vì vậy bạn có thể áp dụng bất kỳ logic xử lý nào bạn cần bằng cách thêm mục tiêu tùy chỉnh. Bạn thậm chí có thể chạy các công cụ từ thế giới Node.js như Grunt hoặc Gulp bằng cách cài đặt các phần mở rộng VS tương ứng.
Như mã chia sẻ giữa ASP.NET và Cordova dự án, tôi đề nghị bổ sung thêm các liên kết trong .jsproj của bạn, như sau:
<PropertyGroup>
<AspNetProject>C:\YourAspNetProject</AspNetProject>
</PropertyGroup>
<ItemGroup>
<Content Include="$(AspNetProject)\Views\**\*.cshtml">
<Link>views\%(RecursiveDir)%(FileName).html</Link>
</Content>
<!-- add other links here -->
</ItemGroup>
Bằng cách này VS hiển thị các tập tin được liên kết trong Solution Explorer và cho phép bạn chỉnh sửa họ như thể họ là người địa phương.
Thật không may, phiên bản hiện tại của VS Công cụ cho Apache Cordova, CTP3, không hỗ trợ các mặt hàng liên kết, vì vậy thay đổi khác đã được thực hiện trong .jsproj của bạn:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CordovaTools\vs-mda-targets\Microsoft.MDA.targets" />
<PropertyGroup>
<BuildDependsOn>PreBuild;$(BuildDependsOn)</BuildDependsOn>
</PropertyGroup>
<Target Name="PreBuild">
<ItemGroup>
<LinkedFiles Include="@(Content)" Condition="'%(Content.Link)' != ''" />
<!-- add other links here -->
</ItemGroup>
<Copy SourceFiles="%(LinkedFiles.Identity)" DestinationFiles="%(LinkedFiles.Link)" />
</Target>
Nhiệm vụ PreBuild
được gọi trước khi bất kỳ Build
subtask và sao chép các tệp được liên kết vào dự án của Cordova. Phần còn lại của quá trình xây dựng chạy như bình thường.
- 1. Chia sẻ cookie giữa dự án ASP.NET MVC và dự án API Web
- 2. Cách chia sẻ mã giữa dự án và dự án xây dựng định nghĩa trong SBT
- 3. Cách chia sẻ HTML giữa các dự án ASP.NET MVC4
- 4. resx chia sẻ giữa các dự án
- 5. Chia sẻ mã giữa các dự án trong tfs 2010
- 6. Chia sẻ mã giữa hai dự án git khác nhau
- 7. Eclipse: chia sẻ mã giữa nhiều dự án
- 8. Chia sẻ dự án giữa Eclipse và Netbeans
- 9. Chia sẻ quan điểm từng phần của ASP.NET MVC giữa các dự án
- 10. Chia sẻ một DLL giữa các dự án
- 11. Eclipse "Chia sẻ dự án" bằng tay?
- 12. Ý tưởng dự án Asp.net?
- 13. Thiết kế dự án Maven - chia sẻ một dự án chung
- 14. Sử dụng một dự án ASP.net MVC là một dự án "cơ sở" cho MVC khác dự án
- 15. Cách chia sẻ các trang cshtml trên nhiều dự án?
- 16. Tôi nên đặt mã tạo mã HTML được chia sẻ trong dự án ASP.NET MVC ở đâu?
- 17. ASP.NET MVC 4 phá vỡ ASP.NET MVC 3 dự án
- 18. Cách chia sẻ tệp mã nguồn C++ giữa các dự án trong Visual Studio?
- 19. Visual Studio: Cách quản lý mã được chia sẻ giữa các dự án
- 20. Chia sẻ một fabfile qua nhiều dự án
- 21. Dự án ASP.NET MVC và thư mục App_Code
- 22. Cách thêm tham chiếu dự án vào dự án ASP.NET Core 1.0 MVC
- 23. Phân chia dự án mã nguồn mở Apache và dự án mã nguồn mở v2 và thông báo bản quyền
- 24. Di chuyển dự án ASP.NET MVC 5 sang ASP.NET 5
- 25. Chuyển đổi dự án ASP.NET MVC 3 sang MVC 4
- 26. Dự án dựa trên Cordova thành Fabric
- 27. Crashlytics: Tải lên dự án Cordova
- 28. Nhập dự án Cordova trong Android Studio
- 29. Dự án ASP.NET Core 1.0 F #
- 30. Dự án nguồn mở để tìm hiểu asp.net mvc 3
Đã thử thêm thuộc tính PropertyGroup và ItemGroup vào tệp '.jsproj' của tôi cho một tệp JS mà tôi muốn chia sẻ. Khi dự án tải lại liên kết xuất hiện một thời gian ngắn trước khi biến mất. Sử dụng Bản cập nhật VS 2015 2. Bất kỳ ý tưởng gì đang xảy ra? – phuzi
@phuzi xin lỗi, tôi chưa bao giờ xử lý VS 2015 Update 2. –