2014-10-13 30 views
5

Visual Studio'nun Cordova şablonu ve aynı Visual Studio çözümündeki bir ASP.NET MVC web uygulaması aracılığıyla Cordova tabanlı bir mobil uygulama geliştiriyorum. Her iki proje arasında olabildiğince fazla HTML paylaşmayı çok isterim. Çalıştığım bir sorun, Cordova projesinde bulunmayan ASP.NET'te gerçekleşen paketleme ve küçültme işlemidir. Her iki projede, Visual Studio'daki minifikasyonu mümkün olduğunca fazla kod paylaşmama olanak sağlayacak şekilde nasıl destekleyebileceğime dair herhangi bir fikir var mı?ASP.NET MVC projesi ve Cordova projesi arasında kod paylaşımı

cevap

0

Cordova'nın proje dosyası .jsproj, MSBuild tarafından işlenen sıradan bir derleme dosyasıdır, böylece özel hedefler ekleyerek ihtiyaç duyduğunuz işlem mantığını uygulayabilirsiniz. İlgili VS uzantılarını yükleyerek Grde veya Gulp gibi Node.js dünyasından araçları çalıştırabilirsiniz. aşağıdaki gibi ASP.NET ve Cordova projeler arasında paylaşımı koduna gibi

, ben senin .jsproj bağlantılar ekleyerek öneririz:

<PropertyGroup> 
    <AspNetProject>C:\YourAspNetProject</AspNetProject> 
</PropertyGroup> 
<ItemGroup> 
    <Content Include="$(AspNetProject)\Views\**\*.cshtml"> 
    <Link>views\%(RecursiveDir)%(FileName).html</Link> 
    </Content> 
    <!-- add other links here --> 
</ItemGroup> 

VS Solution Explorer'da bağlantılı dosyaları görüntüler ve düzenlemek için izin Bu şekilde Onları yerel gibiydiler. Maalesef

, Apache Cordova, CTP3 için VS Araçları güncel sürümü, bağlantılı öğeleri desteklemez, bu nedenle başka bir değişiklik .jsproj yapılacak etti:

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

PreBuild görev herhangi önce denir Build alt bağlantıyı ve bağlı dosyaları Cordova'nın projenize kopyalar. Yapı işleminin geri kalanı her zamanki gibi çalışır.

+0

PropertyGroup ve ItemGroup öğelerini, paylaşmak istediğim tek bir JS dosyası için '.jsproj' öğesine eklemeyi denedim. Proje yeniden yüklendiğinde, bağlantı kaybolmadan önce kısaca görüntülenir. VS 2015 Güncellemesini Kullanma 2. Herhangi bir fikir neler oluyor? – phuzi

+0

@phuzi Üzgünüm, VS 2015 Güncelleme 2 ile hiç ilgilenmedim. –

İlgili konular