有一堆相关的问题在此,虽然大部分的答案定义罗斯林和/或提供“修复”一些问题(exe
与托管服务提供商等)
我似乎无法追踪的是中的“为什么”和“目的”(也许仅在ASP.Net MVC / Web API的上下文中)/bin/roslyn
。
我遇到了类似的问题(托管-.exe
限制,支持4.6
等),我的“解决方案”是“仅部署到Azure”(当然,一切正常。)但是实际上,这并不能回答:
为什么需要它们?- 这是否意味着它们被用于
runtime
编译(我的大脑指出了这一点,但这是一个完整的猜测/我也许是错的骗子),如该SO帖子所示-除非更正,否则为“它”(下文中有更多介绍)。 - 似乎“删除软件包”是一个“修复” (根据过去的一些答案),
但如果是这样,它(重新)会产生问题
我认为了解这一点将有所帮助-例如,我不能成为唯一看到.exe
“需要”的人而扬眉的人。
更新资料
证明“隐藏的宝石”的存在:)我已经读了一遍又一遍...毕竟它已经存在了一段时间了- 但不是评论线程-最初引用的链接(大约在2014年)已由Microsoft和注释不再显示。幸运的是,下面是相关部分。
大错误-一直在盯着我(或至少自从这次交流以来):
Dmitry Dzygin 2015年6月2日上午12:53
我已经尝试了NuGet软件包的最新版本,但是加载/执行编译器的方式似乎有所不同。
在v0.2.0.0中,Roslyn编译器将被加载到内存中,从而极大地提高了具有多个* .as * x / *。cshtml文件的未预编译网站的性能。但是,新版本具有一个新
/bin/roslyn/csc.exe
文件,该文件每个文件执行一次,从而完全删除了上述优化功能.....
金:
XMao 2015年6月2日下午1:22
@Dmitry的的工作
csc.exe
中/bin/Roslyn
是调用VBCSCompiler.exe
,在同一文件夹它坐落。VBCSCompiler.exe
是执行实际编译工作的过程。如果VBCSCompiler已经在运行,则csc.exe将对其进行重用,因此我们仍将获得所提及的性能改进。
嗯...
更新:10/2017
似乎这与所有时间有关,因此需要进一步更新。
@Donny V下面的答案是一个选择。通过完全编译您的应用程序(包括所有Views
(.cshtml
/ .vbhtml
)),您无需exe
在应用程序中使用它。
即使Visual Studio(到今天,VS 2017,令人困惑)仍会/bin/roslyn
在Publish
过程中创建及其内容,即使设置了“ full compile”,也是如此。
您可以通过测试该排除的/bin/roslyn
文件夹,并推动应用程序到你的托管服务提供商时,它的内容。
警告:
如前所述,完全编译您的应用程序意味着您必须重新编译它,即使是View
更改级别也是如此。