私はSilverlightを使い始めたばかりで、最近、確立されたソリューションにSilverlightプロジェクトを追加しました。この特定のシナリオでは、私のソリューションには、VisualStudioがSilverlightアプリケーションを統合するために親切に提供してくれた既存のASP.NETWebサイト(アプリケーションではない)が含まれていました。
したがって、すべてが正常であり、SilverlightXAPがWebサイトのClientBinディレクトリにコピーされています。ここで、新しいASP.NET MVC Webアプリケーションを開始することにしました。これは、最終的に古い(MVC以外の)Webサイトに置き換わるものです。しかし、私は、XAPがビルド時にWebサイトのClientBinに自動的に表示されるように、Visual Studioがどのように変更したかを理解できず、MVCサイトでそれを再現できます。
だから私の質問は、本質的に、VisualStudioにSilverlightアプリケーションのXAPを新しく追加されたASP.NETMVC Webアプリケーションに自動コピーさせるための手動の手順は何ですか?
XAPのClientBinへのコピーは、MSBuildタスクです。標準のASP.NETプロジェクトテンプレートを使用している場合は、Silverlightリンクセクションにあります。
それ以外の場合は、MSBuildタスクの名前を把握して、ASP.NETMVCプロジェクトに追加できる可能性があります。より簡単な解決策は、おそらくAPS.NETプロジェクトでカスタムのビルド後イベントを使用してファイルをコピーすることです。
XAPファイルをSilverlightプロジェクトのBINディレクトリからWebアプリケーションのClientBinにコピーする以外に、「魔法」は発生しません。 ClientBinディレクトリ内に存在する必要はありません。任意のディレクトリまたはサイトのルートにコピーできます。
更新:最近リリースされたASP.NETMVCのBeta1には、Silverlightプロジェクトのサポートが含まれているため、通常のASP.NETアプリケーションの場合と同じ方法でASP.NETMVCアプリケーションにリンクできます。
これは、Webプロジェクトのプロパティを介して行うことができます。 Visual Studio用のSilverlightツールは、「SilverlightLinks」という名前のWebプロジェクトのプロパティに新しいタブを追加します。
ここにSilverlightプロジェクトへの参照を、必要なフォルダーとともに追加すると、VisualStudioがコピーを作成します。
Silverlightアプリケーションのプロパティページに移動し、[ビルドイベント]タブを選択して、ビルド後のイベントコマンドラインに次の行を入力します。
copy $(TargetDir)*.xap $(SolutionDir)<youar web solution folder name such as app.web>\ClientBin
以降、ビルドが成功するたびに、xapファイルが自動的にコピーされます。
これはやや古い投稿なので、おそらく変更されています...私のVisual StudioのWebプロジェクトの下に、「Silverlightアプリケーション」というタブがあります。ソリューションにインポートする既存のプロジェクト用の追加ボタンがあり、それらを追加して、xapをClientBinまたはその他の場所に配置することを選択できます。このタブを表示するには、SDKをインストールする必要があるかどうかわからない。私はそれをインストールしているので、あなたがしなければならないかもしれません。私はMVCを行っていないので、MVCプロジェクトでは異なる可能性があります。わかりません。