Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net web应用程序中发布时转换crossdomain.xml_Asp.net_Publish_Crossdomain.xml_Slowcheetah - Fatal编程技术网

在asp.net web应用程序中发布时转换crossdomain.xml

在asp.net web应用程序中发布时转换crossdomain.xml,asp.net,publish,crossdomain.xml,slowcheetah,Asp.net,Publish,Crossdomain.xml,Slowcheetah,我正在尝试为不同的环境转换crossdomain.xml,就像普通的web.config文件一样。我尝试过在VisualStudio中使用SlowCheetah加载项,但它不能很好地与web应用程序配合使用。它一直在发布转换文件以及转换的文件,这是我不想要的。此外,对于web.config转换,它也做到了这一点 我的另一个想法是将文件和所有转换重命名为crossdomain.$(Configuration).config,希望VS能够将其拾取并转换,然后在构建过程中的某个地方将其重命名为cros

我正在尝试为不同的环境转换crossdomain.xml,就像普通的web.config文件一样。我尝试过在VisualStudio中使用SlowCheetah加载项,但它不能很好地与web应用程序配合使用。它一直在发布转换文件以及转换的文件,这是我不想要的。此外,对于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>
<?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>

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>
   <allow-access-from domain="*" secure="false" />
</cross-domain-policy>
<?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中

我不想回答我自己的问题,但下面的链接帮助我理清了这个问题:


%(RelativeDir)%(文件名)。$(配置).config
$(TransformWebConfigInIntermediateLocation)\original\%(DestinationRelativePath)
$(TransformWebConfigInIntermediateLocation)\transformed\%(DestinationRelativePath)
$([System.IO.Path]::GetFullPath($(\u PackageTempDir)\%(DestinationRelativePath)))

SlowCheetah publishing transforms的问题是一个bug。我将在下一版本中修复它。同时,您可以将Build Action设置为None,这样它们就不会被发布。太棒了!谢谢你的更新。我会留意更新的。老兄,你正和微软拼凑出一个发布解决方案的笑话。事情一直都是这样的,我不期望它会变得更好。微软甚至有一个团队,在那里他们演示如何利用TFS,他们基本上用未集成到VisualStudio中的自定义内容重新设计整个部署过程。这是个笑话。