这是一个使用WebApi的VS2015项目。
再生产的步骤:
在我将构建输出路径从"bin\“更改为”bin\Debug“之前,一切都运行得很好--事实上,除"bin\”之外的任何输出路径都无法工作。
还有一点是,只要我把构建留在"bin\“中,就可以使用另一条输出路径到任何地方。
请帮助提供解决这一问题的解决方案。我想这会给实际部署带来成本问题。
发布于 2017-03-08 10:01:57
如果您的项目有Roslyn references,并且您正在IIS服务器上部署它,您可能会在网站上出现不必要的错误,因为许多托管提供商仍然没有升级它们的服务器,因此不支持Roslyn。
要解决这个问题,需要从项目模板中删除Roslyn编译器。删除Roslyn不应该影响代码的功能。它对我和我工作过的其他一些项目(C# 4.5.2)都很有效。
执行下列步骤:
发布于 2016-01-21 12:40:01
要小心遵循这个答案的建议。虽然它解决了手头的问题,但在以后的某个日期可能会导致不同的问题。
我也有同样的问题。显然,.NET编译器没有加载到GAC
中。我解决这个问题的方法是:
首先,在包管理器控制台中键入:
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
现在,由于某种原因,微软的绅士们决定不为我们安装它到GAC上。您可以通过打开Developer命令提示符并键入:
gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"
结论
微软试图鼓励每个人使用nuget来做任何事情,如果没有你在nuget系统中遇到的偶尔的bug的话,这是很好的。尝试在不同的解决方案上使用相同的项目,意外地(或不)更新它在其中一个解决方案上使用的多个nuget中的一个,如果您运气不好,那么当您尝试构建另一个解决方案时,您就会明白我的意思。另一方面,在GAC中放置文件也会导致未来的问题,因为人们往往会忘记他们在那里放置的内容,然后在设置新的环境时忘记包含这些文件。另一种可能的解决方案是将文件放在第三方dll的中央文件夹中(尽管调用编译器第三方很奇怪),这会在设置新环境时造成引用中断的问题。如果您决定将dll安装到GAC,请小心,并记住您这样做了。如果没有,请再次下载每个项目的nuget,并承担由它引起的所有烦人的bug(至少在我最终厌倦它并将文件放在GAC中时会发生这种情况)。这两种方法都可能会给你带来头痛和问题,这只是一个你喜欢处理哪些问题的问题。微软建议使用nuget系统,一般情况下,听它们比不知名的程序员更好,除非您对nuget系统完全厌倦,并且习惯于与GAC打交道,使它成为您更好的选择。
发布于 2016-05-29 13:30:26
只需将下一个nuget包添加到您的项目- Microsoft.CodeDom.Providers.DotNetCompilerPlatform
。
也有同样的问题。
https://stackoverflow.com/questions/33319675
复制相似问题