AspNet Core 如何把视图文件封装并让 另一个项目调用

背景:

我想将下面的那个项目 编译后让上面的那个项目引用。

AspNet Core 如何把视图文件封装并让 另一个项目调用

我 研究了半天发现 死活会出现找不到 页面文件的错误。

很是奇怪,难道MVC不会寻找程序集吗??然后我花了 1天的时间阅读源码,苦啊!调用 逻辑很深。。。

不过皇天不负有心人,最后发现这段话

AspNet Core 如何把视图文件封装并让 另一个项目调用

最后 原来MVC视图引擎将页面控制器 解析成了 一个表达式树,最后编译调用了!嗯???MVC不是直接视图文件????

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

怎么回事!看来不是视图引擎 不读取视图文件,难道。。。。难道。。另一个项目的视图文件根本就没被编译进项目中。所以MVC视图引擎找不到。有道理。

接着思考 MVC是如何把视图文件编译掉的!然后我就研究微软的SDK。

默认一个netcore或者.net stand的sdk 是Microsoft.NET.Sdk,然后我又看了下 一个正常的web项目 发现是 Microsoft.NET.Sdk.Web

嗯!肯定是用错了。然后我就把项目文件改成如下样式。

AspNet Core 如何把视图文件封装并让 另一个项目调用

 然后把输出类型改为了类库!

AspNet Core 如何把视图文件封装并让 另一个项目调用

再编译,发现一个错误,

The project ****** must provide a value for Configuration.  

what fuck!什么情况(⊙o⊙)?百度。

发现是这个包在作怪,AspNet Core 如何把视图文件封装并让 另一个项目调用删掉!

AspNet Core 如何把视图文件封装并让 另一个项目调用

再看项目信息!没错,以Views.dll结尾的动态库生成啦!

Nice!