Visual Studio一直显示我的项目中的bin文件夹

4
我正在使用Visual Studio 2019开发基于C#的解决方案,并使用Git进行源代码控制。昨天,我向我的解决方案中添加了两个新的.NET 2.0标准SDK项目,但是由于某种原因,这些项目在解决方案资源管理器中一直显示bin文件夹,且该文件夹上有一个红色图标。请问有人知道这是什么意思,以及如何去除它们?enter image description here

你的bin文件夹是否已经从源代码控制中排除?(在git status中是否显示?) - PMF
“显示所有文件”未被选中,csproj文件中也没有引用“bin”文件夹。这可能与Git有关。我只是无法弄清楚如何检查。 - B Singh
Git可能是个好东西。检查一下你的.gitignore文件(们)。它们只应该排除bin文件夹,而不是其中的任何子文件夹。 - PMF
我意识到了这种行为的原因。那是因为我在NuGet包中排除了项目编译的输出,因为这些是分析器项目。<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" /> - B Singh
奇怪...你可能把上面的内容发布为答案。 - PMF
显示剩余2条评论
2个回答

4
我意识到了这种行为的原因。这是因为我正在排除项目编译输出被包含在NuGet包中,因为这些是分析器项目。 <None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />

我最近也注意到了这个问题,并且在这里寻找答案。所以这就是它的本来面目吗?如果你正在使用分析器,你会看到bin文件夹吗?或者你是否曾经发现了一些隐藏它的方法? - Mel

0
你可以使用TfmSpecificPackageFile代替<None Include...。这是Visual Studio的分析器模板生成的内容,通过使用它,解决方案资源管理器中将不会显示bin文件夹。
<PropertyGroup>
  <TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);_AddAnalyzersToOutput</TargetsForTfmSpecificContentInPackage>
</PropertyGroup>

<Target Name="_AddAnalyzersToOutput">
  <ItemGroup>
    <TfmSpecificPackageFile Include="$(OutputPath)\$(AssemblyName).dll" PackagePath="analyzers/dotnet/cs" />
  </ItemGroup>
</Target>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接