2014-10-13 16 views
5

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

0

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.

+0

Đã 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

+0

@phuzi xin lỗi, tôi chưa bao giờ xử lý VS 2015 Update 2. –

Các vấn đề liên quan