为什么 Visual Studio 甚至在 Assets 文件夹之外创建 .meta 文件?

Why is Visual Studio creating .meta files even outside Assets folder?

我有以下项目设置:

现在,每当向该测试项目添加 class 时,我发现也会添加一个 .meta 文件。

这似乎不正确,因为 .meta 文件应该仅适用于 Assets.

中的文件

使用进程监视器我发现确实是 devenv.exe 创建了这些 .meta 文件。

快速修复:

使用忽略 Visual Studio and Unity 忽略,这些 .meta 文件未提交到存储库,

并将其添加到 csproj 将隐藏它们:

  <ItemGroup>
    <None Update="**/*.meta" Visible="false" />
  </ItemGroup>

但实际上,这只是隐藏了问题...

不幸的是,这种方法在 Directory.Build.props 中不起作用,迫使人们手动将以前的代码块添加到每个 'external' 项目中。

问题:

为什么 .meta 文件也在 Assets 之外创建,如何关闭它?

目前,将它放在 Directory.Build.props 的根目录中有效地消除了手动更新每个项目的需要:

<Project>
    <PropertyGroup>
        <DefaultItemExcludes>$(DefaultItemExcludes);**\*.meta</DefaultItemExcludes>
    </PropertyGroup>
</Project>

但这只是隐藏了问题而不是解决问题...

更新

问题来自 Resharper 并已修复:

Avoid creating meta files outside Assets and Packages (#1489)