我正在通过 Visual Studio 的 Cordova 模板以及同一 Visual Studio 解决方案中的 ASP.NET MVC Web 应用程序开发基于 Cordova 的移动应用程序。我希望能够在两个项目之间共享尽可能多的 HTML。我遇到的一个问题是在 ASP.NET 中发生的捆绑和缩小,而这在 Cordova 项目中不可用。我有什么想法可以在两个项目中支持 Visual Studio 中的缩小,这将允许我共享尽可能多的代码?
最佳答案
Cordova 的项目文件 .jsproj
是一个由 MSBuild 处理的普通构建文件,因此您可以通过添加自定义目标来应用您需要的任何处理逻辑。您甚至可以通过安装相应的 VS 扩展来运行来自 Node.js 世界的工具,如 Grunt 或 Gulp。
至于在ASP.NET和Cordova项目之间共享代码,我建议在你的.jsproj中添加链接,如下:
<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 在解决方案资源管理器中显示链接的文件,并允许您像在本地一样编辑它们。
不幸的是,当前版本的 VS Tools for Apache Cordova CTP3 不支持链接项,因此必须在您的 .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>
PreBuild
任务在任何 Build
之前被调用子任务并将链接的文件复制到您的 Cordova 项目。其余的构建过程照常运行。
关于asp.net-mvc - 在 ASP.NET MVC 项目和 Cordova 项目之间共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348920/