我在使用Roslyn编译器时遇到了奇怪的问题。有时候当我构建解决方案时,错误列表中会出现一个奇怪的问题,导致我无法构建解决方案。以下是错误信息:
严重性 代码 说明 项目 文件 行 抑制状态 错误 无法将文件“D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\csc.exe”复制到“bin\roslyn\csc.exe”。访问路径“bin\roslyn\csc.exe”被拒绝。 SealogicalWebsite
严重性 代码 说明 项目 文件 行 抑制状态 错误 无法将文件“D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\VBCSCompiler.exe”复制到“bin\roslyn\VBCSCompiler.exe”。访问路径“bin\roslyn\VBCSCompiler.exe”被拒绝。 SealogicalWebsite
我尝试清理解决方案并重新构建,但仍然没有用。
尝试手动删除文件,但再次显示错误指出我没有正确的权限执行此操作:
尝试从
CMD
删除,但仍然显示相同的错误:
唯一的方法是通过重启电脑来删除roslyn生成的文件,重启后我可以手动删除它们而没有问题。
我是我的PC上的管理员,所以我想这方面应该没有问题。
这个问题似乎发生在Visual Studio 2015和Visual Studio 2017中。
我不喜欢一天内重启4-5次或更多次,所以我在这里提问。
其他一些细节:
我是创建此项目的人,理论上执行此操作不应该出问题。
当第一次创建项目时,我以管理员模式运行了Visual Studion,现在仍然是如此。
- 我在项目中使用ASP.MVC 5模板。
- 无法删除的文件是
bin/roslyn/csc
和bin/roslyn/VBCSCompiler
。
我可以找到一个解决方案,从web.config中删除此部分,以便不再生成这些文件:
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
但是这种解决方案会导致与新的C# 6功能产生问题,所以我无法删除此部分......
此外,我尝试在CMD中使用此命令查看是否有进程锁定此文件,但它没有显示任何进程:
C:\WINDOWS\system32>tasklist /m D:\SealogicalNewWebsite\SealogicalWebsite\SealogicalWebsite\bin\roslyn\csc.exe
INFO: No tasks are running which match the specified criteria.
有人知道如何处理这个奇怪的问题吗?
language="vb...
行。 - Camilo Terevinto