Я пытаюсь преобразовать все файлы web.config в проекте, который у меня есть, вот моя древовидная структура:
Файлов web.config больше, но идея состоит в том, что это найдет их все и применит к ним одно и то же преобразование конфигурации.
Я взял несколько подсказок из сообщения в блоге, которое я нашел , но я застрял на последнем шаге, фактическом преобразовании. Также в середине есть некоторая шероховатость, которая мне не очень нравится (Я не совсем понимаю, что делаю, и очевидно, что делаю это неправильно ). Вот где я на данный момент:
..\..\Website
$(SitePath)\Web.config
Web.Transform.config
..\N\N\
<_FilesToTransform Include="$(SitePath)\**\web.config"/>
Мой файл Transform.bat выглядит так:
%systemroot%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe %CD%\Transforms\ConfigTransform.proj
Итак, когда я вызываю пакет, создаются соответствующие каталоги. Однако, как видите, мне пришлось проявить немного творчества с OutDir, сделав его..\N\N. По какой-то причине, если я этого не сделаю, путь OutDir будет точно таким же, как входной каталог. Так что мне, очевидно, нужно что-то изменить в MakeDir, но я не уверен, что именно.
Настоящая проблема возникает, когда он начинает выполнять преобразования. Я пытался сохранить исходный параметр TransformXml таким или подобным образом :
@(_FilesToTransformNotAppConfig->'%(FullPath)')
. Последнее дает мне ошибку «Не удалось открыть исходный файл :Формат данного пути не поддерживается». и первый дает мне этот вывод:
Build started 30-4-2012 14:02:48.
Project "D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj" on node 1 (default targets).
Transform:
Creating directory "..\N\N\..\..\Website\Views\".
Transforming Source File:..\N\N\..\..\Website\Views\Web.config;..\N\N\..\..\Website\Web.config
D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj(32,2): error : Could not open Source file: Could not find a part of the path 'D:\Dev\transform\DoTransforms\Website\Views\Web.config;\Website\Web.config'.
Transformation failed
Done Building Project "D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj" (default targets) -- FAILED.
Build FAILED.
Подводя итоги моих вопросов: