【问题标题】:Visual Studio is creating ref folderVisual Studio 正在创建 ref 文件夹
【发布时间】:2020-06-15 16:49:15
【问题描述】:

我注意到 VS2019 在我的项目中创建了这个 'ref' 文件夹。它只包含一堆 DLL,当我尝试删除它时出现错误。当我关闭 VS 并删除 bin 和 obj 文件夹并重新打开解决方案时,它不存在,但不久后又被创建。

我找不到太多关于此文件夹的用途以及为什么会出现在此处的信息。任何信息表示赞赏。我还添加了屏幕截图以便更好地理解。

【问题讨论】:

  • 哦,也许我忘了提到我使用的是 .NET Core 3.1 并且我的所有包都在其可用的最新版本上。另外我正在使用 Microsoft.Extensions.Hosting.WindowsService 也许这就是原因?
  • 你能提供一个Minimal, Reproducible Example吗?这里没有足够的信息让我继续。当我创建新的 .NET Core 3.1 Web 应用程序或控制台应用程序时,我当然不明白。
  • 此外,我认为这个问题与一些特定的 nuget 包文件夹更相关。而ref文件夹上的图标就是nuget包引入的文件。所以,你可以尝试新建一个项目,将已有的nuget包一一安装,看看是哪一个。或者直接与我们分享你所有的 nuget 包信息。

标签: visual-studio nuget visual-studio-2019 ref


【解决方案1】:

它只包含一堆 DLL,当我尝试 删除它。当我关闭 VS 并删除 bin 和 obj 文件夹并重新打开时 解决方案它不存在,但不久后再次创建。

如果您的项目没有其他脚本,我认为这个问题是由某些特定的 nuget 包引起的。还有a similar issue。

nuget 包包含一些 <package_id>.targets 或 props 文件或 contentfiles 标记以将一些额外文件导入您的项目,它创建了 ref 文件夹,其中包含一些在您的情况下有用的文件。

让我再详细解释一下:

当你创建一个 nuget 包并且想在安装这个包到一个新的主项目时导入一些额外的文件或做一些额外的操作,你可以使用MSBuild props and targets、contentfiles tag 或powershell scripts 来导入一些额外的文件到新项目中。

通常,作者出于特定目的创建它们,所以请不要在项目中轻易删除它们,否则会导致其他问题。此外,作者还会添加某种恢复机制,防止误删文件无法恢复。

检查这种行为:

我建议你可以新建一个空项目,然后将这些nuget包一一安装,看看哪个包是角色。或者您可以与我们分享这些包,以便我们帮助您找到它。

【讨论】:

  • 所以我按照您建议的解决方案创建了新项目,并在其中一一添加了依赖项。事实证明,Microsoft.PowerShell.SDK 包负责创建此文件夹。猜猜这是因为 .NET Core 应该是跨平台的,它需要所有这些 DLL 才能在 unix 系统上运行。该软件包有更新版本可用,当我安装它时,它会创建另一个名为 runtimes 的文件夹,其中包含 unix 和 win 子文件夹
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 2018-08-12
  • 1970-01-01
相关资源
最近更新 更多