2010-05-03 2 views
2

코드 스 니펫에 표시된 ItemGroup을 만들었습니다. 이 ItemGroup을 반복하고 EXEC 명령을 실행해야합니다 (코드 스 니펫에 표시됨). 나는 그것이 작동하도록 할 수 없습니다. 이 코드는 아래에 표시된 오류를 반환합니다. (참고 - 메시지는 2 번 쓰여졌지만 올바르지 만) EXEC 명령이 올바르게 실행되지 않습니다. 값이 설정되지 않습니다. 따라서 EXEC는 전혀 실행되지 않습니다. 두 번 또는 ItemGroup에서 정의한 섹션을 실행하려면 EXEC이 필요합니다.MSBuild ItemGroup 및 EXEC 명령 사용

ERROR : 암호화 웹 서버 부 appSettings는 웹 서버에게 connectionStrings 섹션 암호화 C : \ WINDOWS \ Microsoft.NET 워크 \ \ V2.0.50727 \ 다음 aspnet_regiis.exe -pef "" "\ GAW UI \"-prov "RSACustomProvider" 구성 섹션 암호화 중 ... 구성 섹션 ''을 (를) 찾을 수 없습니다.

코드는 :

<ItemGroup> 
    <SectionsToEncrypt Include="Item"> 
     <Section>appSettings</Section>  
    </SectionsToEncrypt> 
    <SectionsToEncrypt Include="Item">  
     <Section>connectionStrings</Section> 
    </SectionsToEncrypt> 
    </ItemGroup> 

    <Target Name="EncryptWebServerWebConfigSections"> 
    <Message Text="Encrypting WebServer %(SectionsToEncrypt.Section) section" /> 

    <Exec Command="$(AspNetRegIis) -pef &quot;%(SectionsToEncrypt.Section)&quot; &quot;$(DropLocation)\$(BuildNumber)\%(ConfigurationToBuild.FlavorToBuild)\$(AnythingPastFlavorToBuild)&quot; -prov &quot;$(WebSiteRSACustomProviderName)&quot;"/> 
    </Target> 

답변

5

문제는 당신이 한 번에 두 항목에 대한 배치가 있다는 것입니다. 내 말은 당신이 진술을 가지고 있다는 것입니다.

%(SectionsToEncrypt.Section) 
%(ConfigurationToBuild.FlavorToBuild) 

동일한 작업 호출에서. 동일한 작업 호출에서 한 번에 두 개 이상의 항목을 일괄 처리하면 일괄 처리됩니다. 그게 당신이 오류라고 말하는 이유입니다. 구성 섹션 ' ...

FlavorToBuild에 하나의 값이 있다면, Exec에 전화하기 전에 속성에 물건을 채우고 재산. 그러면 한 개의 라이너가 다음으로 변환됩니다.

<PropertyGroup> 
    <_FlavToBuild>%(ConfigurationToBuild.FlavorToBuild)<_FlavToBuild> 
</PropertyGroup> 
<Exec Command="$(AspNetRegIis) -pef &quot;%(SectionsToEncrypt.Section)&quot; &quot;$(DropLocation)\$(BuildNumber)\$(_FlavToBuild)\$(AnythingPastFlavorToBuild)&quot; -prov &quot;$(WebSiteRSACustomProviderName)&quot;"/> 

FlavorToBuild에 대한 값이 여러 개인 경우 더 복잡합니다. foreach 문/foreach는

일괄 처리가 MSBuild에서 가장 혼란 요소 중 하나를 수행하기 위해 한 번

  • 사용 대상 배치보다 더

    1. 하드 코드 Exec에서 더 많은 작업 배치와 : 당신은이 옵션을 가질 것이다. 일부 온라인 리소스를 http://sedotech.com/Resources#batching에 모았습니다. 그 이상을 알고 싶다면 내 book 사본을 수령 할 수 있습니다.

  • +1

    +1 그리고 책을 강력하게 추천 할 수 있습니다 - "aha의 주간을 대체합니다. 그래서 내가 얻지 못한 것이 있습니다."적절한 맨 아래로 여행합니다. –

    +1

    +1 책을 추천합니다. 정말 훌륭합니다. – chhenni

    +0

    예 +1에 대한 도서 추천 :) –