Visual studio nuget.props和.targets文件应该是源代码存储库的一部分吗?

Visual studio nuget.props和.targets文件应该是源代码存储库的一部分吗?,visual-studio,package,nuget,restore,Visual Studio,Package,Nuget,Restore,这些文件是在包还原期间创建的,这就是为什么我认为它们不必位于存储库中。是否有进一步的文件说明这些文件的用途,这可能有助于回答这个问题?。目标文件包括在项目文件中引用的文件中,因此在读取项目文件时需要放在适当的位置。如果NuGet包还原是在构建项目的开始时完成的,则这些文件在读取项目文件时不存在 因此,将这些文件放入源代码管理,以便在加载项目文件时它们始终存在 另一种方法是使用一个项目(所有其他项目都依赖该项目),强制对整个解决方案进行NuGet包恢复(但它本身不使用任何包)。生成后,当项目文件就

这些文件是在包还原期间创建的,这就是为什么我认为它们不必位于存储库中。是否有进一步的文件说明这些文件的用途,这可能有助于回答这个问题?

。目标文件包括在项目文件中引用的文件中,因此在读取项目文件时需要放在适当的位置。如果NuGet包还原是在构建项目的开始时完成的,则这些文件在读取项目文件时不存在

因此,将这些文件放入源代码管理,以便在加载项目文件时它们始终存在

另一种方法是使用一个项目(所有其他项目都依赖该项目),强制对整个解决方案进行NuGet包恢复(但它本身不使用任何包)。生成后,当项目文件就位时,所有目标文件都就位


当然,许多NuGet软件包不使用此类文件,这不是问题。

对于.NET核心项目,NuGet.g.targets和NuGet.g.props是通过NuGet还原生成的。它们是在obj文件夹中创建的。因此,您不需要在版本控制中使用这些。通常,obj文件夹中的文件不包括在版本控制中

如果这些文件丢失,Visual Studio将在打开解决方案时自动恢复这些文件

如果您使用的是生成服务器,则可以运行
dotnet restore
来还原这些文件。与Visual Studio 2017一起安装的MSBuild 15还可用于通过运行解决方案的
MSBuild/t:restore
来还原这些文件

nuget.g.targets和nuget.g.props文件定义各种属性,例如包缓存在计算机上的路径。它们还包括任何MSBuild导入,这些导入可以获取项目需要引用的包


例如,如果引用了Microsoft.Net.Test.Sdk NuGet包,则NuGet.g.targets和NuGet.g.props将导入该NuGet包中包含的MSBuild文件。使用packages.config文件时,这些导入将直接添加到项目文件(.csproj)中。

这是针对.NET核心项目的吗?完全正确@谢谢你!我们正在通过Jenkins调用MSBuild,需要添加/t:Restore参数。