Windowsデスクトップガジェットを開発、デバッグ、および展開するための環境をセットアップしようとしています。プロジェクトで少し障害が発生しました。構成が「デバッグ」に設定されていると、ガジェットでビルドを実行できません。構成が「リリース」に設定されている場合、ビルドは次のカスタムタスクを実行します。
- ガジェットの内容を別のフォルダにコピーします。
- javascriptファイルを縮小/難読化し、コメントと空白を削除します。
- ファイルをCABファイルにパッケージ化します。
- デジタル証明書を使用してCABファイルに署名します。
これは問題なく実行されます。私の「デバッグ」構成には次のタスクが定義されています
- ガジェットフォルダをにコピーします
AppData\Local\Microsoft\Windows Sidebar\Gadgets\
。 - IDesktopGadgetインターフェイスを使用してガジェットを起動します。
これらの2つのタスクを「リリース」構成にコピーすると、問題なく実行されます。問題はありません。「リリース」構成からコピーした「テスト」と呼ばれる別の構成を作成してみました。
「リリース」以外の構成をビルドしようとすると、「ビルドに成功しました」というインスタントメッセージが表示されますが、タスクはまったく実行されていません。
編集:私はまだVS 2010 RCで同じ問題を抱えていて、それが非常にイライラしているので、賞金を始めました。
さらに編集:
ジョンのおかげで、ビルドプロセスをデバッグすることができました。<Target>
デバッグ条件のある要素が完全に無視されている(処理されていない)ことに気づきました。<Target>
要素の位置を入れ替えると、次のように機能しました。
<Target Name="Build" Condition="'$(Configuration)' == 'Release'">
<!--
<Obfuscate PathToJasob="C:\Program Files (x86)\Jasob.com\Jasob 3.5" Path="$(GadgetFolder)" Output="$(GadgetName)_obf" log="jasob_log.txt" />
-->
<BuildGadget BuildFormat="CAB" Path="$(GadgetFolder)" Target="$(GadgetName).gadget" />
<SignGadget CertName="Cert1" TimestampURL="http://timestamp.comodoca.com/authenticode" Target="$(GadgetName).gadget" />
</Target>
<Target Name="Build" Condition="'$(Configuration)' == 'Debug'">
<CopyToGadgets GadgetFolder="$(GadgetFolder)" GadgetName="$(GadgetName)" />
<RunGadget GadgetName="$(GadgetName)" />
</Target>
したがって、属性が存在する<Target Name="Build">
にもかかわらず、2番目の要素が最初の要素をオーバーライドしているように見えます。Condition
私に何ができる?