如何在 powershell 中使用需要值键对的 api 函数
How to use an api function that wants a value key pair in powershell
我正在尝试使用 Microsoft 版本 api 通过 powershell 创建安装脚本。我知道如何在 C# 中做我想做的事,我测试了一个小例子,并且几乎在 powershell 中准备好了。我只需要知道填什么作为键值对即可。
C#:
ProjectItemGroupElement slItemGroup = project.Xml.CreateItemGroupElement();
project.Xml.InsertAfterChild(slItemGroup, project.Xml.LastChild);
List<KeyValuePair<string, string>> metadata = new List<KeyValuePair<string, string>>();
var testkvp = new KeyValuePair<string, string>(@"HintPath",@"MyPath");
metadata.Add(testkvp);
slItemGroup.AddItem(@"Reference", @"microsoft.deployment.windowsinstaller", metadata);
在 powershell 中,我做到了这一点,这很有效,但我不知道如何定义第三个参数。你能给我一个提示吗?
$itemGroup = $msBuildProj.Xml.CreateItemGroupElement()
$msBuildProj.Xml.InsertBeforeChild($itemGroup, $myImport)
$itemGroup.AddItem('Reference', 'Microsoft.Deployment.WindowsInstaller')
#$itemGroup.AddItem('Reference', 'Microsoft.Deployment.WindowsInstaller', ???)
我很确定你想要的是像这样的字典对象:
$metadata = New-Object 'System.Collections.Generic.Dictionary[String, String]'
$metadata.add('HintPath','MyPath')
$itemGroup.AddItem('Reference', 'Microsoft.Deployment.WindowsInstaller', $metadata)
创建字典,添加 key/value 对,然后使用它创建项目。
我正在尝试使用 Microsoft 版本 api 通过 powershell 创建安装脚本。我知道如何在 C# 中做我想做的事,我测试了一个小例子,并且几乎在 powershell 中准备好了。我只需要知道填什么作为键值对即可。
C#:
ProjectItemGroupElement slItemGroup = project.Xml.CreateItemGroupElement();
project.Xml.InsertAfterChild(slItemGroup, project.Xml.LastChild);
List<KeyValuePair<string, string>> metadata = new List<KeyValuePair<string, string>>();
var testkvp = new KeyValuePair<string, string>(@"HintPath",@"MyPath");
metadata.Add(testkvp);
slItemGroup.AddItem(@"Reference", @"microsoft.deployment.windowsinstaller", metadata);
在 powershell 中,我做到了这一点,这很有效,但我不知道如何定义第三个参数。你能给我一个提示吗?
$itemGroup = $msBuildProj.Xml.CreateItemGroupElement()
$msBuildProj.Xml.InsertBeforeChild($itemGroup, $myImport)
$itemGroup.AddItem('Reference', 'Microsoft.Deployment.WindowsInstaller')
#$itemGroup.AddItem('Reference', 'Microsoft.Deployment.WindowsInstaller', ???)
我很确定你想要的是像这样的字典对象:
$metadata = New-Object 'System.Collections.Generic.Dictionary[String, String]'
$metadata.add('HintPath','MyPath')
$itemGroup.AddItem('Reference', 'Microsoft.Deployment.WindowsInstaller', $metadata)
创建字典,添加 key/value 对,然后使用它创建项目。