在Rider中,项目目录中的文件将自动显示在其资源管理器窗口中,除非您要求将它们排除在外。但是它们不会自动添加到csproj文件中。当我尝试添加现有文件时,如果它已经在项目目录中,似乎什么也不会发生。如果不手动编辑csproj文件,是否有任何方法将文件添加到csproj文件(不切换到Visual )?谢谢。
发布于 2022-03-01 11:01:34
所有.cs文件在.csproj所在的(相对)根目录下的文件夹中,自动成为项目的一部分(如果在那里转储一些格式错误的.cs文件,则会生成并破坏构建)。这与过去的情况相反--,您必须明确地排除不想要的东西,。因此,试图显式地添加一个已经在项目文件夹树中的文件是不可行的。
不知道VS是否还在添加它们,因为整个“风格的改变”都是在MSBuild机制中。有一个生成属性集 (和往常一样只是一个XML标记)来管理行为,尽管大多数人都不去操心。
如果一开始看起来确实很奇怪,但很快你就会像其他人一样变得懒惰:-)做出这种改变的全部原因正是为了让人们停止追逐文件和路径。此外,现在有了大量的代码库,这些代码库更多的是规范而非异常,因此几乎不可能手动管理东西,更不用说.csproj用于100+、500+、1000+文件的大小了。
这也使得.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>
https://stackoverflow.com/questions/71036711
复制相似问题