VS2010にSilverlight5プロジェクトがあり、Webアプリのデータベース接続文字列を変更するのとほぼ同じように、構成に基づいて構成ファイルを変更したいと考えています。
私のServiceReferences.ClientConfigは次のようになります。
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IWcfPortal" closeTimeout="00:10:00"
openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
maxBufferSize="25000000" maxReceivedMessageSize="25000000" />
</basicHttpBinding>
</bindings>
<client>
<endpoint name="WcfCslaService" address="http://localhost:22/Services/WcfSlPortal.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfPortal"
contract="WcfPortal.IWcfPortal" />
</client>
</system.serviceModel>
My ServiceReferences.MyConfig.ClientConfigファイル(右クリックで低速チーターで自動追加、変換を追加)は次のようになります。
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.serviceModel>
<client>
<endpoint name="WcfCslaService" address="http://192.168.0.0:22/Services/WcfSlPortal.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfPortal" contract="WcfPortal.IWcfPortal"
xdt:Transform="Replace" />
</client>
</system.serviceModel>
私の問題は、ノード全体を置き換える代わりに(この同じソリューションのweb.configで行っているように)、変換が行われないことです。クリーン/リビルド、手動で.xapファイルを削除、一度に1つのプロジェクトをビルドしてみました。silverlightのproject\binフォルダーを調べて、xapファイルを解凍すると、すべてのClientConfigファイルが含まれるようになり、メインの構成ファイルは変更されません。また、「xdt:Transform」に下線を引くxapファイルに、「「http://schemas.microsoft.com/XML-Document-Transform:Transform」属性が宣言されていません」というエラーがあります。
ServiceReferences.MyConfig.ClientConfigを右クリックすると、[変換のプレビュー]が正確に表示されます(IPアドレスが更新された同じサービス)。もう1つのクレイジーなことは、これは以前は機能していたことであり、それを壊すために何をしたのかわかりません(リポジトリにコミットする直前に壊れました)。遅いチーターをアンインストールして再インストールしたり、再起動したりしました。
この変換を機能するように修正する方法を知っている人はいますか?