2012-04-09 13 views
1

にコピーした後、私は次のように配置されたSilverlightのプロジェクトを持っているコマンドラインを実行しシルバーMSBuildのタスク - XAPはClientBin

    • シルバー
      • をビン
        • デバッグ
    • ExampleCode
      • {複数のサブディレクトリ}
  • Silverlight.Web
    • ビン
      • デバッグ
        • ClientBin
          • Silverlight.Web.xap

{複数のサブディレクトリ}下のコードはSilverlightのDLLに含まれてコンパイルされるが、しかし、私はまた、これらのファイルを含めますxapファイルの "Content"。デモを表示する.NETコントロールのデモアプリケーションについて考えてください。また、デモを実現するためのC#/ xamlコードもあります。これは私がやろうとしていることです。

  • が、私は二回のファイルを含めると1をコンパイルすることはできませんコンパイルしてVS2010はあなたをさせませんように、他のコンテンツとして、彼らがすでに含まれているように私が選択することができません

    • は、コンテンツとして含まれています。

    Example/Silverlight/ExampleCodeフォルダの下にあるすべてのファイル/フォルダを出力xapファイルに含めたいとします。これを達成するために、Silverlight.Webプロジェクトでビルド後のイベントを試みました。構文は次のとおりです。

    "$(SolutionDir)..\Lib\7Zip\7z.exe" a -tzip 
        "$(ProjectDir)ClientBin\Silverlight.Web.xap" 
        "$(SolutionDir)Examples\Silverlight\Bin\Debug\ExampleCode" 
    

    これをコンソールウィンドウで実行すると、完全に機能します。 xapファイルが更新されます。しかし、Silverlight.Webのポストビルドイベントから実行した場合、何も起こりません(失敗はなく、まったくありません)。

    ポストビルドイベントがの前に発生し、の前にxapファイルが作成されたとします。

    の後で、引数がのMSbuildタスクまたはコマンドラインポストビルドイベントを実行する方法を知っている人は知っていますか?xapファイルはClientBinにコピーされますか?

  • 答えて

    2

    SilverlightプロジェクトのAfterCompileターゲットにXapFilesInputCollectionにファイルを追加することで、この問題を回避できます。ただし、Visual Studioでコンパイルすると、プロジェクトに直接binフォルダを含めるとアクセス拒否エラーが発生することがあります。

    <Target Name="AfterCompile"> 
        <ItemGroup> 
        <XapFilesInputCollection Include="$(SolutionDir)Examples\Silverlight\Bin\$(Configuration)\ExampleCode"/> 
        </ItemGroup> 
    </Target> 
    
    +0

    ありがとうございました。これを試してみましょう –

    +2

    これは動作しません – Jupaol

    関連する問題