Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将道具文件属性/变量添加到csproj提示路径_C#_Msbuild_Nuget_Nuget Package_Csproj - Fatal编程技术网

C# 将道具文件属性/变量添加到csproj提示路径

C# 将道具文件属性/变量添加到csproj提示路径,c#,msbuild,nuget,nuget-package,csproj,C#,Msbuild,Nuget,Nuget Package,Csproj,我添加了.props文件并将其包含在.nuspec文件中。 在我的.props文件中,我在PropertyGroup中添加了新的属性/元素。 安装我的nuget软件包后,.props文件正在.csproj文件中成功导入。但是,如何在HintPath中添加/添加道具文件属性/变量(不是手动的)。< P>使用HutPuth.& NuSPEC为您的NuGube是遗留方法的指示器,并且考虑到,根本没有提示路径,它们都是自动的。 提示路径的遗留部分 提示路径通常用作nuget安装程序集的引用项的项元数据。

我添加了.props文件并将其包含在.nuspec文件中。 在我的.props文件中,我在PropertyGroup中添加了新的属性/元素。
安装我的nuget软件包后,.props文件正在.csproj文件中成功导入。但是,如何在HintPath中添加/添加道具文件属性/变量(不是手动的)。

< P>使用HutPuth.& NuSPEC为您的NuGube是遗留方法的指示器,并且考虑到,根本没有提示路径,它们都是自动的。 提示路径的遗留部分

提示路径通常用作nuget安装程序集的引用项的项元数据。当nuget是一个外部工具(现在它是.NETSDK的一部分)时,就已经开发了遗留项目格式。当时的方法是将packages.config(您不再需要它)和NUGET列表一起安装到项目中,虽然安装了包,但在.net工具的其余部分看来,它必须是一组常规的侧加载程序集,这就是为什么DLL文件被恢复到“packages”文件夹(不再发生这种情况)的原因,参考项被添加到项目中,其中HintPath具有此“packages”文件夹的相对路径。这包括整个引用图,所以如果PackageA使用PackageB,则两者都部署到“packages”文件夹,并且都在每个包的所有库上生成引用项。通过这种方式,遗留工具用于将包管理引入现有生态系统。对于新的PacakgeReference方法,您只需指定顶级包,所有临时引用都将在恢复和构建时自动处理

自定义目标

既然您提到您的nuspec中有props文件,那么让我澄清一下,现在如何在您发布的软件包中以SDK样式csproj实现它(没有nuspec,所有nuspec数据现在都在csproj中):


真的
建造
因此,在PackagePath项元数据中指定了目标路径,它应该是
build
,以表示这是可自动安装的目标

现在,在传统方法中,当安装这样的包时,使用者项目自动具有“导入”节点,以显式地将此目标带到项目中。现在,在新的SDK方法中,如果您使用PackageReference导入这样的包,您将找不到导入节点—这实际上是隐式假设的,所以如果有问题的包在构建文件夹中有目标和道具—所有这些都将在构建时自动导入(而不是在设计时)

包装参考


所以,如果您像这样使用项目,这就足以使用这个包中的定制道具带来的属性。像往常一样随意使用它们,希望您不再需要HintPath