Я застрял с преобразованием файлов конфигурации в проекте Silverlight (т.е. файл ServiceReferences.ClientConfig
). Я следил за некоторыми источниками (например, этот источник) о том, как вручную отредактируйте файл .csproj, чтобы добавить файл преобразования, но я не могу заставить его работать на нашем CI-сервере.
Изменения в файле .csproj:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="BeforeBuild" Condition="exists('ServiceReferences.$(Configuration).ClientConfig')">
<TransformXml Source="ServiceReferences.ClientConfig" Destination="$(TargetDir)\ServiceReferences.ClientConfig" Transform="ServiceReferences.$(Configuration).ClientConfig" />
<ItemGroup>
<Content Remove="ServiceReferences.ClientConfig" />
<ContentWithTargetPath Include="$(TargetDir)\ServiceReferences.ClientConfig">
<TargetPath>ServiceReferences.ClientConfig</TargetPath>
</ContentWithTargetPath>
</ItemGroup>
</Target>
<Target Name="AfterBuild" />
Преобразование моих файлов конфигурации работает нормально, если я собираю свой проект Silverlight в VS2010 на своем локальном клиенте. Я могу открыть сгенерированный XAP-файл и посмотреть на ServiceReferences.ClientConfig
и увидеть, что он преобразован. Следовательно, я исключаю файл(ы) преобразования как проблему.
Но когда я создаю свой проект Silverlight на нашем CI-сервере, ServiceReferences.ClientConfig
остается непреобразованным в сгенерированном XAP-файле на CI-сервере.
Что касается определения сборки, я в порядке, насколько я вижу. DeployConfiguration
в разделе Processes
установлена допустимая конфигурация. (Если я изменю имя конфигурации в этой записи на что-то недействительное - CI-сервер будет жаловаться. Так работает пока...) Transform Configuration Files
в этом же разделе установлено значение true.
Любые идеи были бы хорошы!