【发布时间】:2012-03-16 23:07:08
【问题描述】:
我正在尝试为不同的环境转换 crossdomain.xml,就像常规的 web.config 文件一样。我已经尝试在 Visual Studio 中使用 SlowCheetah 插件,但它不能很好地与 Web 应用程序配合使用。它不断发布转换文件以及我不想要的 transformed 文件。此外,它也为 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>
有人有什么建议吗?
更新 我花在这上面的时间越多,我就越意识到 .NET 中的部署完全是一场噩梦。仍在试图弄清楚这一点。看起来 VS 发布功能做了某种半途而废的部署。它调用 MSBuild 来收集要部署的文件,然后在 MSBuild 之外手动部署它。因此,无法获取部署路径来进行转换。我必须将它作为参数存根到 MSBuild 中。
【问题讨论】:
-
SlowCheetah 发布转换的问题是一个错误。我会在下一个版本中修复它。同时,您可以将 Build Action 设置为 None,这样它们就不会被发布。
-
太棒了!感谢更新。我会留意更新。
-
老兄,你发现微软正在拼凑一个发布解决方案的笑话。一直都是这样,我不希望它会变得更好。微软甚至有一个小组,他们演示如何利用 TFS,他们基本上用未集成到 Visual Studio 中的自定义东西重新设计整个部署过程。这是个笑话。
标签: asp.net publish crossdomain.xml slowcheetah