关于这个问题有一大堆的 相关问题,尽管大多数的答案是 定义罗斯林和/或提供一些问题的“修复”(exe
,托管服务提供商,等等)
我似乎无法追踪到的是 /bin/roslyn
中的“为什么”和“为什么”(也许只是在 ASP.Net MVC/Web API 的上下文中)。
我遇到了类似的问题(主机-.exe
限制,对 4.6
的支持等等) ,我的“修复”是 “只要部署到 Azure”(当然所有的工作都没有问题)。但实际上,这并不能回答:
runtime
编译 我认为 理解这将有所帮助-例如,我不能是唯一一个谁会扬起眉毛看到 .exe
“需要”..。
展示了“隐藏的宝石”的存在:)我有 一遍又一遍地读这个... 毕竟它已经存在了一段时间了-但是 < strong > < em > not 评论帖子-最初的参考链接,大约2014年,已经被微软重新设计,评论不再显示... 幸运的是,相关部分在下面。
大错特错——它一直盯着我看(至少从这次交流开始) :
Dmitry Dzygin 2015年6月2日12:53 AM
我已经尝试了 NuGet 包的最新版本,但似乎在加载/执行编译器的方式上有所不同。
在 v0.2.0.0版本中,罗斯林编译器将被加载到内存中,大大提高了未预编译网站的性能 多个 * . as * x/* . cshtml 文件 新的
/bin/roslyn/csc.exe
文件,每个文件执行一次, 完全删除上述优化特性... ...
黄金:
XMao 2 Jun 20152015年6月2日下午1:22
@ Dmitry
/bin/Roslyn
中csc.exe
的作用是调用位于同一文件夹中的VBCSCompiler.exe
是执行实际编译工作的进程 VBCSCompiler 已经在运行 csc.exe,因此我们将重用它 仍然获得了上述的性能提高
这..。
看起来这是相关的,毕竟这么多时间,所以进一步更新。
作者:@Donny V是 选择。通过完全编译您的应用程序,包括所有的 Views
(.cshtml
/.vbhtml
) ,您将不需要在您的应用程序中使用该 exe
。
即使 Visual Studio (到今天为止,令人困惑的是 VS 2017)将 还是创建 /bin/roslyn
及其在 Publish
进程 即使设置了“完整编译”中的内容,也是如此。
您可以通过 不包括测试这个 /bin/roslyn
文件夹和它的内容时,推您的应用程序到您的托管提供商。
警告 :
如前所述,完全编译应用程序意味着您必须重新编译它,即使是对于 View
级别的更改。