게시자 정책을 만들려면 MSBuild의 <AL></AL>
작업을 실행하고 싶습니다. 이를 위해, 내 csproj
파일에서, 내가 설정 파일 이름의 목록을 만들 : 나는 단 하나 개의 버전 번호 "@(PolicyVersion"
을해야하는 경우가 완벽하게 잘 작동MSBuild : 다른 소스의 정보를 하나의 작업에 병합
<Target Name="AfterBuild">
<ItemGroup>
<ConfigFiles Include="$(TargetDir)\*.config" />
</ItemGroup>
<AL
LinkResources="%(ConfigFiles.Identity)"
Platform="x86"
KeyFile="$(ProjectDir)\KeyFile.snk"
OutputAssembly="$(TargetDir)\%(ConfigFiles.Filename).dll"
Version="@(PolicyVersion)"
/>
</Target>
. 하지만 각 설정 파일마다 다른 버전 번호가 필요한 경우에는 어떻게해야합니까? 구성 파일의 XML 특성에서 버전 번호를 검색 할 수 있지만이를 수행하는 방법을 모르기 때문에 배치를 빌드하는 동안 해당 항목에 사용할 수 있습니다.
또한 다음을 시도했습니다. 설정 파일의 이름은 Policy.2.2xx.Mylib.config
입니다. 이들은 프로그래밍 방식으로 생성됩니다. 나는, 버전 정보를 (각 Mylib
동일하지만 다른 libs와 다를 수 있음), 들고 Policy.2.2xx.Mylib.ver
또는 MyLib.ver
파일 내가
<ReadLinesFromFile File="$(TargetDir)\MyLib.ver">
<Output TaskParameter="Lines" ItemName="PolicyVersion" />
</ReadLinesFromFile>
를 사용하여 읽을 수있는 추가로 생성하지만, 내가 어떻게 할 수 이제
MyLib
(또는
Policy.2.2xx.Mylib
)의 버전 정보를
<AL>
작업의 해당 구성 파일과 연결 시키십시오. 나는
"%(ConfigFies.identity).ver"
을 읽음으로
ItemName
으로 사용하려고했다. 그때 나는이 정보를
AL
taks에 넣었으므로 동일한 msbatch 루프를 참조하면서이 정보에 액세스 할 수 있었으면 좋겠지 만,이 점은 항목 이름에 점들이 맞지 않기 때문에 작동하지 않는다.
두 개의 다른 아이템 그룹에서 새 아이템 그룹을 만드는 것만 큼 쉽지만, 지금까지는이 MS Build 몬스터와 함께 충분히 경험하지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다.
(VS 2008을 사용하고 있습니다.)
고맙습니다. 조용히 분명히 이런 종류의 루프에 익숙해지기 위해 약간 연습해야합니다. 이것은 내가 그것이 필요로하는 것을 할 것 인 것처럼 많이 본다 - 나는 내가 추측하는 수요일보다 일찍 이것을 시험해 볼 수 없다. 그러나 나는 약간 자신이있다. 그렇지 않더라도, 그것은 나를 시작하게 할 것입니다. '$ (LinkResource)'는 '$ (_ LinkResource)'여야합니다. 맞습니까? – Thomas
이 대체 기능은 MSBuild 4.0에서만 사용할 수 있습니까? – Thomas
@Thomas $ (LinkResource) 속성으로 불일치를 수정했습니다. 또한 MSBuild 4.0에서는 속성 함수 (즉 Replace 함수)가 추가 된 것으로 보입니다. 하지만 MSBuild 4.0으로 .NET 2.0 코드를 작성할 수는 있습니다. –