了解 csproj 文件的内容

understanding the content of a csproj file

我有一些非 SDK 风格的旧项目,它们是使用 Visual Studio 创建的; csproj 文件几乎从未被手动修改过。在我来这家公司之前,他们有一部分是由同事完成的,所以我对这些文件中应该或不应该包含的内容知之甚少。

现在我试图通过手动修改csproj文件将它们变成SDK风格的项目。为此,我需要了解每个标签的用途,以及是否可以省略或必须修改。

可能会有

我试着用谷歌搜索给定的标签和 "csproj",但我常常找不到有用的内容。我还注意到,大多数时候我找不到来自 Microsoft 的资源,大部分是私人博客条目,有时,有时不会告诉我我想知道的内容。

有一些 Microsoft 文档,例如 sdk reference or common properties,但它们并未涵盖我项目中的所有标签。

那么,我怎样才能理解我的 csproj 文件的内容呢?那里有文档,我只是找不到它吗?如果是这样,要搜索什么?微软不应该有所有可能标签的完整列表吗?他们发明了 csproj 格式,所以他们应该知道。或者我是否需要先学习其他东西,这是使用 csproj 文件的先决条件(就像在构建桥梁之前应该了解基本代数和微积分),这将帮助我自己弄清楚东西?

cproj个文件可以有很多项目配置。 Visual Studio 扩展也可能会修改 cproj 文件并添加自定义值。

根据对此答案的评论,Visual Studio 项目没有可用属性的完整列表。问题中提供的链接包含最常用的属性,因此应该适合一般项目。

很少会使用不包含在这些链接中的属性。如果您 运行 跨越未知 属性,请尝试在线搜索,如果失败,请继续询问。

一个很好的搜索查询,我还没有失败,{Project Type} "{Property}" csproj property.Net "TestProjectType" csproj property