c# - 使用 vscode : some sort of issue with the project file 运行测试时出错

标签 c# .net visual-studio-code

在使用 VSCode 调试单个测试(而不是整个套件)的 MacOS 上会出现此问题。 当我尝试使用 vscode 调试此测试时,我得到以下输出:

/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error MSB3883: Unexpected exception:  [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error : DirectoryNotFoundException: Could not find a part of the path '/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/bin/Debug/net6.0/ref/Reusable.dll'. [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite) [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite) [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :    at Microsoft.CodeAnalysis.BuildTasks.CopyRefAssembly.Copy() [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]
/usr/local/share/dotnet/sdk/6.0.201/Microsoft.Common.CurrentVersion.targets(4650,5): error :  [/Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/Reusable.csproj]

当然,这里的问题是 /Users/username/Documents/coding/CSharp/current_projects/Project-Name/Reusable/bin/Debug/net6.0/ref 没有存在,但它不是由构建系统生成的!为什么它认为.dll在ref中,而不是在它正上方的文件夹下?

这只发生在我尝试在 VS 中调试测试时。看起来这是项目的问题......有谁知道可能出了什么问题?如果您需要更多信息,请告诉我。如有必要,我可以包含项目文件。

最佳答案

我也遇到过这种情况。通过将其添加到我的项目文件中找到了解决方法:

<PropertyGroup>
  <ProduceReferenceAssemblyInOutDir>true</ProduceReferenceAssemblyInOutDir>
</PropertyGroup>

在这里发现了这个解决方法 https://github.com/microsoft/vscode-azurefunctions/issues/3051

这是由于 .NET 6 SDK 中引入的一项重大更改。见:https://learn.microsoft.com/dotnet/core/compatibility/sdk/6.0/write-reference-assemblies-to-obj

关于c# - 使用 vscode : some sort of issue with the project file 运行测试时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71446767/

相关文章:

c# - xml 改变属性值

powershell - VSCode 覆盖 PowerShell ExecutionPolicy

python - 使用 for 迭代 python 列表时如何指定类型/类名

c# - 有没有人有使用 cglib MulticastDelegate 来执行 C# 事件之类的示例代码?

c# - 纠结于 List 和 ArrayList 的使用

.net - CaSTLe Windsor 拦截器内存泄漏

c# - Html Agility Pack可以用来解析HTML片段吗?

visual-studio-code - 配置 V.S. 的可见性代码滚动条

c# - Form1.cs【设计】消失了

c# - 在 MVC 中保存数据