我们最近从旧的CodeDom提供者升级到名为Microsoft. CodeDom.提供者. DotNetCompiler平台的新Roslyn CodeDom提供者。它工作正常,但它在错误的位置查找csc.exe。Nuget包将exe放在路径中:
[应用程序路径]\bin\Debug\roslyn
但是,当我们编译时,我们得到这个错误:找不到路径“[App Path]\ bin \ Debug \ bin \ roslyn \ CSC . exe”的一部分。
请注意,它在错误的位置查找exe。它在已经在bin\Debug文件夹中的“bin”文件夹中寻找它。因此,为了使我们的代码能够编译,我们需要将Roslyn编译器移到:[App Path]\ bin \ Debug \ bin \ Roslyn \ CSC . exe
有没有办法告诉 CodeDomProvider Roslyn 编译器的位置?这不就是 Roslyn 编译器代码中的一个直接错误吗?
将项目设置的“生成事件”选项卡中的“生成后事件命令行”更改为:
IF EXIST $(TargetDir)roslyn\csc.exe (MKDIR $(TargetDir)bin & MOVE /Y $(TargetDir)roslyn $(TargetDir)bin\roslyn)
我将查看NuGet包Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix。我没用过,但它有10K的下载量,因为我认为这是很多人都遇到过的问题。我遇到了这个问题,我记得用反射来解决这个问题,这是我写的片段,引用了我基于的堆栈溢出答案,其中_compiler是我的CSharpCodeProvider:
// Little hack here, see http://stackoverflow.com/a/40311406/1676558.
object compilerSettings = typeof(CSharpCodeProvider)
.GetField("_compilerSettings", BindingFlags.Instance | BindingFlags.NonPublic)
.GetValue(_compiler);
FieldInfo compilerSettingsFullPathField = compilerSettings
.GetType()
.GetField("_compilerFullPath", BindingFlags.Instance | BindingFlags.NonPublic);
string desiredCompilerSettingsFullPath = ((string)compilerSettingsFullPathField
.GetValue(compilerSettings))
.Replace(@"bin\roslyn\", @"roslyn\");
compilerSettingsFullPathField.SetValue(compilerSettings, desiredCompilerSettingsFullPath);
在Visual Studio 2017中,当点击<kbd>Ctrl</kbd><kbd<F5</kbd>运行我的ASP时。NET Framework Web API服务器,我得到: 在包管理器控制台中运行并不是永久的修复,因为当包文件丢失时,服务器错误会再次出现。我如何一劳永逸地摆脱此错误,以便在我重新打开、构建和运行我的Visual Studio解决方案时自动(默默地)重新安装所需的包? 重现错
在Visual Studio 2017中,当单击Ctrl+F5运行我的ASP.NET Framework Web API服务器时,我会得到: 找不到文件...bin\Roslyn\csc.exe: 在包管理器控制台中运行并不是永久性的修复,因为当包文件丢失时,服务器错误会再次出现。如何才能一劳永逸地消除此错误,以便在重新打开、生成和运行Visual Studio解决方案时立即自动(以静默方式)重新
我正在尝试运行从TFS源代码管理中检索的ASP.NET MVC项目。我已经添加了所有程序集引用,并且能够在没有任何错误或警告的情况下成功构建和编译。 但我在浏览器中得到以下错误: 找不到路径“C:\b8AKWorkspace\b8AKProject\b8AKSolution\b8AK.portal\bin\Roslyn\csc.exe”的一部分。 这里是错误页面的完整截图。 经过几天的研究,我了解
我正在尝试让MS Bot builder示例在mac上运行,使用VS Preview。每次尝试运行应用程序时,我都会得到一个错误500,并且:
我尝试将一个用Visual Studio编写的ASP NET 4.5网站部署到一个Mono服务器上。 系统。IO.FileNotFoundException找不到文件“/SRV/www/proj/bin \ roslyn \ CSC . exe”。 描述:HTTP 500。处理请求时出错。 我做错了什么?
我最近将新的.NET编译器NuGet包(Microsoft.codedom.providers.dotNetCompilerPlatfor)添加到一个现有的旧的MVC.NET网站中。现在,当我试图发布网站时,我得到以下异常: 发布输出: 关于如何解决这个问题有什么想法吗?