Sto sviluppando un'applicazione mobile basata su Cordova tramite il modello Cordova di Visual Studio e un'applicazione Web ASP.NET MVC nella stessa soluzione di Visual Studio. Mi piacerebbe essere in grado di condividere il maggior numero possibile di HTML tra entrambi i progetti. Un problema che sto incontrando è il raggruppamento e la minimizzazione che ha luogo in ASP.NET che non è disponibile nel progetto Cordova. Qualche idea su come potrei supportare la minificazione in Visual Studio su entrambi i progetti che mi permetterebbe di condividere più codice possibile?Condivisione del codice tra il progetto ASP.NET MVC e il progetto Cordova
risposta
Il file di progetto di Cordova .jsproj
è un file di build ordinario gestito da MSBuild, quindi è possibile applicare qualsiasi logica di elaborazione necessaria aggiungendo destinazioni personalizzate. Puoi persino eseguire strumenti dal mondo Node.js come Grunt o Gulp installando rispettive estensioni VS.
Quanto alla condivisione di codice tra progetti ASP.NET e Cordova, mi consiglia di aggiungere link nella tua .jsproj, come segue:
<PropertyGroup>
<AspNetProject>C:\YourAspNetProject</AspNetProject>
</PropertyGroup>
<ItemGroup>
<Content Include="$(AspNetProject)\Views\**\*.cshtml">
<Link>views\%(RecursiveDir)%(FileName).html</Link>
</Content>
<!-- add other links here -->
</ItemGroup>
In questo modo VS visualizza i file collegati in Solution Explorer e consente di modificare loro come se fossero locali.
Purtroppo, la versione corrente di VS Tools per Apache Cordova, CTP3, non supporta elementi collegati, quindi un altro cambiamento deve essere fatto nella vostra .jsproj:
<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>
Il compito PreBuild
si chiama prima di ogni Build
sottotask e copia i file collegati sul progetto Cordova. Il resto del processo di compilazione viene eseguito come al solito.
- 1. condivisione codice tra web app e cordova
- 2. Condividere i cookie tra il progetto ASP.NET MVC e il progetto API Web
- 3. Condivisione del codice tra i controller MVC ASP.NET
- 4. Codice Visual Studio con ASP.NET Progetto MVC
- 5. Progetto ASP.NET MVC 6 non riconosciuto come progetto web
- 6. Progetto di progetto Maven - condivisione di un progetto comune
- 7. ASP.NET MVC Struttura del progetto predefinita e cartella degli script
- 8. Migrazione del progetto ASP.NET MVC 5 in ASP.NET 5
- 9. Come condividere il codice tra progetto e progetto di definizione build in SBT
- 10. Progetto Cordova su Fabric
- 11. Condivisione di un progetto tra Eclipse e Netbeans
- 12. Differenza tra la firma del codice di destinazione e progetto
- 13. Importazione del progetto Cordova in Android Studio
- 14. Distribuito Progetto ASP.NET MVC 4 non eseguito
- 15. Condivisione della sessione tra il servizio web e l'applicazione asp.net
- 16. Distribuzione del progetto Spring MVC
- 17. Swagger per il progetto Spring MVC
- 18. Debug del progetto cloud ASP.NET sulla LAN
- 19. Aggiungere ASP.NET MVC Area per ASP.NET Web Forms progetto
- 20. Visualizzazione della versione del progetto nell'applicazione ASP.NET MVC Core (RC2)
- 21. Crashlytics: carica un progetto Cordova
- 22. Ottenere il nome del progetto del progetto WPF
- 23. Struttura progetto MVC 3
- 24. Configurare log4net per il progetto asp.net MVC3
- 25. Differenza tra il progetto Windows Phone e il progetto Silverlight Windows Phone in Visual Studio 2013
- 26. crosswalk cordova android aggiornamento progetto?
- 27. Utilizzando un progetto ASP.net MVC come un progetto di "base" per altri MVC proietta
- 28. Condivisione del sistema di accesso tra ASP classico e ASP.Net
- 29. Come risolvere Visual Studio che si blocca durante il caricamento del progetto MVC ASP.NET?
- 30. Come ottenere il percorso del progetto dal progetto di test?
Ho provato ad aggiungere il file PropertyGroup e ItemGroup al mio '.jsproj' per un singolo file JS che voglio condividere. Quando il progetto viene ricaricato, il collegamento appare brevemente prima di scomparire. Utilizzo di VS 2015 Update 2. Qualche idea su cosa sta succedendo? – phuzi
@phuzi mi dispiace, non mi sono mai occupato di VS 2015 Update 2. –