在 Visual Studio 中,您有许多项目模板。
创建新项目时是否可以在
PropertyGroup
文件中设置初始 csproj
属性?
例如,当我创建一个新的控制台应用程序时,这些是其
csproj
文件的内容:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
如果我希望
csproj
文件的内容与我创建的控制台应用程序不同,我该怎么做?
例如,我希望所有控制台应用程序项目默认禁用
Nullable
。
提到的.csproj文件确实是由MSBuild技术生成的,该技术用于构建Visual Studio项目。要禁用 Nullable,可以将代码指令插入到文件的 PropertyGroup 部分,如下所示。
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>disable</Nullable>
</PropertyGroup>
为了将来的项目继承此设置,需要将项目保存为模板。
下次要创建新项目时:
下面附上MSbuild和VS Template文档,有需要的可以看一下。 https://learn.microsoft.com/en-us/visualstudio/msbuild/walkthrough-using-msbuild?view=vs-2022 https://learn.microsoft.com/en-us/visualstudio/ide/creating-project-and-item-templates?view=vs-2022
.Net Core 项目的模板位于
C:\Program Files\dotnet\templates
它们打包在
*.nupkg
文件中,但可以通过存档软件(如 WinRAR
)打开并编辑其中的文件。
问题在于它们是针对每个版本的。
这意味着 .Net 8 的模板仅用于该版本,因此,如果您希望所有项目中都存在某些属性组,您可以编辑 .Net 8 控制台应用程序的模板,它会起作用,但是您'当 .Net 9 发布时,我们必须做同样的事情。
最后,拥有自定义项目模板并更新它似乎是唯一的选择。
奖励:
似乎有一些古老的、古老的标志,例如
csharpFeature_Nullable
指示是否(在本示例中)Nullable
属性将在项目中设置。然而,互联网上几乎没有关于它的信息。说真的。