<PackageReference Include="Google.Protobuf" Version="$(Google_Protobuf_Version)"/>
<PackageReference Include="Grpc.Net.Client" Version="$(Grpc_Net_Client_Version)"/>
<PackageReference Include="Grpc.Tools" Version="$(Grpc_Tools_Version)">
我发现这个.csproj
文件,PackageReference没有指定版本号,它被$(Package_name_Version)
取代了。这是什么意思?
我检查了微软文档,但没有找到任何信息。
实质上,$(Package_name_Version)
是在另一个文件中建立的。当在多个项目中使用相同版本的包时,通常采用这种做法。然后可以通过修改单个指定位置来更新包的版本。
该文件的示例,CUSTOM_FILE.props
:
<Project>
<PropertyGroup>
<some_nuget_reference>2.0.0</some_nuget_reference>
</PropertyGroup>
</Project>
该文件的用法:
Import Project="$([MSBuild]::GetPathOfFileAbove('CUSTOM_FILE.props', '$(MSBuildThisFileDirectory)../'))" />
<PackageReference Include="Google.Protobuf" Version="$(some_nuget_reference)"/>
需要注意的是,该文件必须创建在项目的根目录下。