0

在 Rider 中,项目目录中的文件会自动显示在其资源管理器窗口中,除非您要求排除它们。但它们不会自动添加到 csproj 文件中。当我尝试添加现有文件时,如果它已经在项目目录中,似乎什么都没有发生。在不手动编辑 csproj 文件的情况下,有没有办法将文件添加到 csproj 文件中(无需切换到 Visual Studio)?谢谢。

4

1 回答 1

0

在 .csproj 所在的(相对)根目录下的文件夹中找到的所有 .cs 文件都会自动成为项目的一部分(如果您在其中转储一些格式错误的 .cs 文件,它们将构建并破坏您的构建)。这与过去相反——你必须明确排除你不想要的东西。因此,尝试显式添加已经在项目文件夹树中的文件是无操作的。

不知道 VS 是否仍在添加它们,因为整个“风格变化”是微软和 MSBuild 的。有一组构建属性(通常只是 XML 标记)用于规范行为,尽管大多数人不会打扰。

如果一开始看起来确实很奇怪,但很快你就会像其他人一样变得懒惰:-) 这种改变的全部原因正是为了让人们可以停止追逐文件和路径。再加上现在大量的代码库比异常更规范,几乎不可能手动管理事情,更不用说 100+、500+、1000+ 文件的 .csproj 大小了。

这也使得 .csproj 大体上是不必要的——你可以用虚拟的默认 .csproj 构建几乎任何东西——只需添加包引用。一个小警告 -如果您明确添加 .cs 文件(通过添加标签),它将破坏您的构建- 它们将被视为“重复”。

这可能是构建“一切”的最小 .csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>$(AppTargetFrameworkVersion)</TargetFramework>
    <AssemblyName>$(SolutionNamespaceRoot).Domain</AssemblyName>
    <RootNamespace>$(AssemblyName)</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Package.One.From.Wherever" Version="$(ComponentsVersion)" />
  .   .   .
  </ItemGroup>
</Project>
于 2022-03-01T11:01:34.817 回答