首页 > C# > 找不到路径的一部分… bin\roslyn\csc.exe

找不到路径的一部分… bin\roslyn\csc.exe

上一篇 下一篇

我正在尝试运行从TFS(团队基础服务器)源代码管理检索的 ASP.NET MVC(模型-视图-控制器)项目。我已经添加了所有程序集引用,并且能够成功构建和编译,没有任何错误或警告。

但是我在浏览器中收到以下错误:

找不到路径
“C:B8akWorkspaceB8akProjectB8akSolutionB8AK.Portalbinroslyncsc.exe”的一部分。

这是错误页面的完整屏幕截图。

经过几天的研究,我了解到 Roslyn 是一个提供高级编译功能的 .NET 编译器平台。但是,我不明白为什么我的构建试图找到binroslyncsc.exe因为我没有配置与Roslyn相关的任何内容。我也不打算在我的项目中使用 Roslyn。

分割线

网友回答:

默认VS2015模板的问题在于编译器实际上并没有复制到目录,而是复制到目录tfrbinroslyn{outdir}roslyn

在 .csproj 文件中添加以下代码:

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
    <ItemGroup>
      <RoslynFiles Include="$(CscToolPath)*" />
    </ItemGroup>
    <MakeDir Directories="$(WebProjectOutputDir)binroslyn" />
    <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)binroslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

分割线

网友回答:

TL;博士

在程序包管理器控制台中运行以下命令:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

更多信息

此问题与Visual Studio本身无关,因此建议添加构建步骤以复制文件的答案是一种解决方法。与手动将编译器二进制文件添加到项目相同。

Roslyn 编译器来自 NuGet 包,该包的某些版本中存在/曾经存在错误(我不知道确切是哪些)。解决方案是将该软件包重新安装/升级到无错误版本。最初在我 2015 年写答案之前,我通过安装特定版本的以下软件包来修复它:

  • Microsoft.Net.Compilers 1.1.1
  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.1

然后我查看了.csproj,并确保包的路径是正确的(在我的例子中是….packages*.*)在顶部的标签内,在底部有名称“EnsureNuGetPackageBuildImports”。这是在MVC 5和.NET Framework 4.5.2上。<ImportProject><Target>

分割线

网友回答:

清洁和重建对我有用!

模板简介:该模板名称为【找不到路径的一部分… bin\roslyn\csc.exe】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 217次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-19
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信模板 自适应 html5 微信图片 微信公众平台 企业网站 微信文章 响应式 单页式简历模板 微信素材
您可能会喜欢的其他模板