Я пытаюсь преобразовать crossdomain.xml для разных сред, как обычные файлы web.config. Я пытался использовать надстройку SlowCheetah для visual studio, но она плохо работает с веб-приложениями. Он продолжал публиковать файлы преобразования вместе с преобразованным файлом , который я не хотел. Более того, он сделал это и для преобразования web.config.
Моя другая мысль состояла в том, чтобы переименовать файл и все преобразовать его в crossdomain. $ (Configuration) .config в надежде, что VS подберет его и преобразует, а затем переименует где-нибудь в процессе сборки в crossdomain.xml. Но VS не будет преобразовывать это вообще. Вот как выглядят мои трансформации на данный момент.
crossdomain.config
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain- policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" secure="false" />
</cross-domain-policy>
crossdomain.stage.config
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<allow-access-from domain="*.foo.com" secure="true" xdt:Transform="Replace" />
</cross-domain-policy>
У кого-нибудь есть предложения?
UPDATE
Чем больше я трачу на это времени, тем больше понимаю, что развертывание в .NET - это настоящий кошмар. Все еще пытаюсь понять это. Похоже, что функция публикации VS делает своего рода наполовину развертывание. Он вызывает MSBuild для сбора файлов для развертывания, а затем развертывает его вручную вне MSBuild. Таким образом, нет способа получить путь развертывания для преобразования. Я должен был бы заглушить это в MSBuild в качестве параметра.