我搜索并阅读了很多内容,但找不到一个确定的答案来解释“nuget.props”文件是什么以及它的用途。
能否给出一些例子并进行解释?
我搜索并阅读了很多内容,但找不到一个确定的答案来解释“nuget.props”文件是什么以及它的用途。
能否给出一些例子并进行解释?
首先介绍一些背景信息,.NET项目是使用MSBuild构建的。C#项目的.csproj
实际上只是一个MSBuild项目文件,其文件扩展名表明它是C#而不是其他语言,但对于MSBuild来说它只是一个项目文件。MSBuild只有几个基本类型:属性、项、目标和任务。按照惯例,属性和项放在扩展名为.props
的文件中,而任务和目标放在以.targets
结尾的文件中。这就是为什么如果你查看旧式的csproj
文件,你会看到<Import Project="path\to\Microsoft.Common.CSharp.props" />
和<Import Project="path\to\Microsoft.Common.CSharp.targets" />
。新的SDK样式项目实际上只是基本上是语法糖,用于完成完全相同的事情。
.props
和.targets
将替换系统已安装的构建系统中的编译目标/任务,并改为使用来自该包的内容。这使您可以在编译器安装在系统之前使用新的语言功能,或者如果您想确保代码的所有构建都使用相同的编译器,即使不同的开发人员或CI代理安装了不同的版本也可以。.cs
文件保存到中间文件夹中,为这些生成的文件添加MSBuild Compile项,然后C#编译器将与项目中的所有其他.cs
文件一起编译它。您需要对MSBuild和.NET构建系统有相当多的了解,但这是可能的。build/
文件。传递性包不会导入build/
文件。但是,包作者可以将他们的文件放在buildTransitive/
中(文档不太好,但技术上是有文档的),以便传递性和直接引用都使用它。buildTransitive
不受packages.config支持,因此支持两种风格变得复杂。 - zivkan
nuget.g.props
吗?还是你在其他地方找到了nuget.props
?如果是的话,在哪里找到的? - zivkan