我使用 BackgroundService
类和 .NET 8 创建了
一个新的 Windows Service。这样做时,会自动生成 .csproj 文件,其中包含一个名为 UserSecretsId 的属性。该值是一个类似散列的值,并附加了我的项目名称。
由于我计划将这个项目提交到远程存储库上的源代码控制,这对我来说似乎是一个危险信号。为什么 .csproj 文件中会有用户密码,因为该文件通常会添加到源代码管理中?所以我的问题是,UserSecretsId 的目的是什么?它应该隐藏还是公开?我应该在将项目提交到源代码管理之前将其删除吗?如果应该隐藏,那么为什么会使用这个值自动生成 .csproj 文件?
这是 .csproj 文件的示例:
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>dotnet-MyService-12uaeoj7i-sdfoij-ds398u3ef-3oweu5h</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
</ItemGroup>
</Project>
提交是安全的,你可以阅读this