首页 > 解决方案 > Visual Studio - 防止创建在 CSPROJ 中移动文件时的标签

问题描述

在我的 CSPROJ 中,我有一个子文件夹 ›None‹。它是这样设置的:

<ItemGroup Label="None">
  <Compile Remove="None/**/*.cs" />
  <None Include="None/**/*.cs" />
</ItemGroup>

在那里我有 CS 文件,我不想编译。

不,我想将一个文件(比如说 ‌›CompileIt.cs‹ 从 ›None‹ 移回项目,因为现在我想再次编译它。

如果我将它移到 Visual Studio 之外(例如直接在资源管理器中或通过 PowerShell),它会完全按照我的意愿执行,该文件现在位于项目内的不同文件夹中,并且 Build-Action 从 ›None‹ 更改为 ›C# Compiler ‹.

但是如果我在 Visual Studio 中移动文件,就会发生不同的事情。Visual Studio 像这样更改 CSPROJ 文件:

<ItemGroup Label="None">
  <Compile Remove="None/**/*.cs" />
  <None Include="None/**/*.cs" />
</ItemGroup>

<ItemGroup>
  <None Include="CompileIt.cs" />
</ItemGroup>

现在我必须再次从 CSPROJ 中删除 ItemGroup,或者在文件的解决方案资源管理器的属性页面中更改“构建操作”。

我当然知道,这通常正是您所期望的,因为通常如果您只移动文件,构建操作不应更改。

但无论如何,如果我在其中移动文件,是否有办法让 Visual Studio 知道不更改 CPSROJ 文件?

或者,有没有办法在 Visual Studio 中标记子文件夹,以便 Visual Studios 知道它应该忽略其中的所有文件?

PS:哦,我忘了说,这是一个Core-Style CSPROJ文件,也就是说,所有的CS文件都是自动包含的。

标签: visual-studiocsproj

解决方案


推荐阅读