在为我公司的内部重用库制作NuGet模块时,我终于着手制作一个带有可视组件的模块.此模块的.cshtml文件将驻留在特定于模块的位置(而不是标准的“Views”文件夹),因此我将一个辅助web.config放在与视图相同的文件夹中以允许MVC和Razor.
问题变成了,虽然我可以在我的.nuspec文件中指定一个MVC版本作为依赖项,但我不希望必须特定于版本,因为我在视图中使用的所有功能都存在于所有版本的MVC中.
有没有办法可以查看特定(和非传统)文件夹并使用共享MVC二进制文件和配置进行操作?是否可以在所有类型的项目中执行此操作,而无需在安装NuGet软件包后执行任何额外的步骤?
解决方法:
你有几个选择:
>使用razor生成器将视图编译到类中 – https://razorgenerator.codeplex.com
>将视图包含为嵌入资源,并编写VirtualPathProvider以获取它们(示例在http://www.ianmariano.com/2013/06/11/embedded-razor-views-in-mvc-4/)
>在nuget包内创建PowerShell脚本以及其他步骤
依赖于Asp.Net MVC的问题在于它并不总是向后兼容,但是你必须自己检查一下