2016-07-06 2 views
0

Microsoft 빌드 API를 사용하여 powershell을 사용하여 설치 스크립트를 만들려고합니다. C#에서 내가 원하는 것을 어떻게 할 수 있는지, 약간의 예제를 테스트 한 결과 powershell에서 거의 준비가되었다는 것을 알고 있습니다. 나는 무엇을 핵심 가치 쌍으로 채울 것인지 알 필요가있다.powershell에서 값 키 쌍이 필요한 API 함수를 사용하는 방법

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', ???) 

답변

0

나는 당신이 원하는 것은이 같은 사전 개체입니다 확신 해요 :

사전을 만들어
$metadata = New-Object 'System.Collections.Generic.Dictionary[String, String]' 
$metadata.add('HintPath','MyPath') 
$itemGroup.AddItem('Reference', 'Microsoft.Deployment.WindowsInstaller', $metadata) 

는 키/값 쌍을 추가 한 다음 항목을 생성하는 데 사용합니다.

+0

감사합니다. –

+0

해결 방법이 도움이된다면 나중에 답변을 찾는 데 도움이되도록 답변을 수락으로 표시하십시오. – TheMadTechnician

+0

나는 지금 그랬다. .. 멍청한 사람 인 것을 유감스럽게 생각한다. 그러나 버튼이 있었던 곳을 발견하는 데 약간의 분이 걸렸다. :) 다시 한번 감사드립니다! –