Nuget 使用属性页创建CoApp包
我想创建一个CoApp包,它将只安装我部门的自定义属性表(目前它们来自Mercurial子存储库,我们希望尽可能多地删除子存储库) 属性表位于几个目录中:Nuget 使用属性页创建CoApp包,nuget,propertysheet,nuget-spec,vsprops,Nuget,Propertysheet,Nuget Spec,Vsprops,我想创建一个CoApp包,它将只安装我部门的自定义属性表(目前它们来自Mercurial子存储库,我们希望尽可能多地删除子存储库) 属性表位于几个目录中: - build - bsii.props - vc12 - vc12.props - debug32.props - debug64.props - release32.props - release64.props - details - 32.props -
- build
- bsii.props
- vc12
- vc12.props
- debug32.props
- debug64.props
- release32.props
- release64.props
- details
- 32.props
- 64.props
- common.props
- debug.props
- release.props
主属性表是build\bsii.props
,它有条件导入,根据平台和配置导入其余属性表
为了使包正常工作,我需要它包含所有属性页文件夹结构,并将主属性页bsii.props
添加到项目中
我尝试了以下脚本:
nuget {
nuspec {
id = foundations.propertysheets;
version: 4.0.0.0;
title: Native Property Sheets;
...
};
files {
import_props += {
#destination = build\native\imports\;
..\build\**\*.props;
}
}
}
这确实创建了一个包,其中包含所有必需的文件,但没有为项目配置属性表
当我使用import_props:..\build\bsii.props
然后该包只包含这个文件,但它不在项目上安装它,而是由CoApp生成的一个不同的.props文件,它没有对我的主属性页的引用:
<Import Project="..\packages\foundations.propertysheets.4.0.0.0\build\native\foundations.propertysheets.props" Condition="Exists('..\packages\foundations.propertysheets.4.0.0.0\build\native\foundations.propertysheets.props')" />
如何在包中包含所有文件并使包在项目中配置正确的属性表?我不知道CoApp,但在普通nuget中,如果您想向项目添加属性表,而不是(区别在于在构建过程中对其进行评估时),您可以通过将属性页和以下
install.ps1
和uninstall.ps1
脚本放在nuget软件包的工具/目录中来实现这一点
安装.ps1
卸载.ps1
有关仅安装单个属性页的完整nuget包,请参阅
param($installPath, $toolsPath, $package, $project)
foreach ($config in $project.Properties.Item("Configurations").Object)
{
$propertySheet = $config.AddPropertySheet("$toolsPath\bsii.props")
}
param($installPath, $toolsPath, $package, $project)
foreach ($config in $project.Properties.Item("Configurations").Object)
{
$propertySheet = $config.AddPropertySheet("$toolsPath\bsii.props")
$config.RemovePropertySheet($propertySheet)
}