問題タブ [manifest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - alwaysRetainTaskStateとlauchModeを使用してAndroidアプリの状態を保持する
私のAndroidアプリには、アプリケーションへのエントリポイントとして機能するメインアクティビティがあります。これは、マニフェストファイルで次のように構成されています。
したがって、特定のユースケースでは、ユーザーがアプリケーションランチャー内のアイコンをクリックしてホーム画面からアプリを起動するとします。アプリを起動した後、ユーザーはメインアクティビティからアクティビティAに移動し、最後にアクティビティBに移動します。この時点で、ユーザーはFacebookを確認することにしたので、ホームボタンをクリックしてアプリをバックグラウンドに置き、起動します。 Facebookアプリ。
Facebookを確認した後、ユーザーは私のアプリに戻りたいので、ホームキーを押して、アプリケーションランチャーからアプリケーションを起動します(最初に起動したときと同じように)。
ユーザーがアプリに戻ったときに、アプリがバックグラウンドに置かれたときにユーザーが最後に行ったアクティビティ(この場合はアクティビティB)にアプリを戻すようにします。マニフェストファイルでは、alwaysRetainTaskState=trueを設定しました。 OSが私のアプリのアクティビティを強制終了しないようにするため。
さて、私の質問です。上記の動作をどのように取得しますか?アプリのアイコンをクリックすると、何があっても常にメインアクティビティから始まります。これはcategory.LAUNCHER属性によるものだと思います。android:launchMode = singleTaskを試しましたが、違いはありません。常にメインから始まります。
誰かがインテントフィルター、起動モード、およびタスクを明確にすることができれば、それは素晴らしいことです!
com - アウト プロセス ActiveX の SideBySide のシミュレーション
クライアント側の比較的複雑なアプリケーション (ActiveX / .net / Delphi / C++ / COM) を適応させて、SxS を使用して、管理者以外の展開と製品の古いバージョンからの分離を実現しています。
プロセスで使用するすべてのライブラリを記述したマニフェスト ファイルを作成することで、.net ui、Delphi ui、およびプロセスで使用する COM サーバーなど、ほぼすべてのプロセス内コンポーネントでこの目標を達成できました。登録は必要ありません。いずれかのコンポーネントのクライアントで (ほぼ)。
そして、大部分がここに来ます: 現時点では、私たちのアプリケーションは (C++ の部分から) プロセス外 ActiveX サーバー (Delphi ActiveX EXE) を呼び出し、それ自体がプロセス外 ActiveX サーバーの別のセット (サードパーティのプラグイン、ここには、Delphi、C++、ActiveX EXE プロセス外であり、インターフェイスを実装している限り、すべてのものがあります)。
私たちが知っているように、SxS はアウト プロセス ActiveX サーバーをサポートしていません。また、これらのオブジェクトをメイン プロセスの proc com サーバーのように使用することはできません。これは、アプリケーションを大幅に書き直す必要があり、最悪の場合、サード パーティのツールやベンダーによって使用される公開 API を壊す必要があるためです。許せないブレイク。
別のプロセスで実行されている Internet Explorer ウィンドウから IHTMLDocument2 を抽出する方法について説明しているこの記事に出くわしました。このアプローチを思いついた理由は次のとおりです。
ActiveX をイン プロセス サーバーとして実行するセカンダリ サテライト アプリケーション/プロセスを作成します。次に、 LresultFromObjectとObjectFromLresultを使用して、ActiveX オブジェクトの参照をサテライト アプリケーションからメイン アプリケーション プロセスに転送します。サテライト アプリケーションには、SxS モードで実行できる独自のマニフェスト ファイルがあります。
この Delphi ActiveX EXE とサード パーティの AciveX EXE プラグインとの間の通信には、同じアプローチが取られます。
com リクエストを .net に変換することにより、.net リモーティングと .net com プロキシ クラスを使用して 2 つのプロセス間の通信チャネルを開くという上記の提案されたソリューションよりも、当面は好まない代替ソリューションがあります。 2 番目のプロセスで com に戻ります。
だからここに質問があります:
- このアプローチについてどう思いますか?
- 問題のより良い解決策はありますか?
scala - Buildr で効果がない Package メソッド
scala プロジェクトを jar にパッケージ化し、Buildrs のpackage()メソッドを使用してプロパティをマニフェストに書き込もうとしています。
パッケージはマニフェストに影響を与えないようです。ビルドファイルは次のとおりです。
結果のマニフェストは次のとおりです。
Implementation-VendorプロパティもMain-Classプロパティも上書きされていないことに注意してください。次のように Builder を実行します。
jRuby 1.4.0 と Buildr 1.3.5 (gem としてインストール) を使用しています。なぜこれが当てはまるのか、誰にでもアイデアはありますか?
c++ - マニフェストを使用した DLL リダイレクト
特定の DLL のアプリケーション ルックアップを確実にリダイレクトする必要があります。アプリケーションにマニフェスト (埋め込みファイルまたは別のファイル) がある場合、ローカル ファイルは無視されるため、app.exe.local アプローチを使用しても機能しません。そのため、マニフェストで DLL をプライベート アセンブリとして定義することにより、DLL リダイレクトを実行しようとしています。
単純に呼び出すテスト アプリケーション LoadDll.exe があります。
LoadDll.exe にはマニフェストがあります (別のファイル LoadDll.exe.manifest として)
LoadDll.exe (c:\ ではない) を含むアプリケーション フォルダーには、マニフェストが埋め込まれた EmptyDll.dll が含まれています。
ただし、LoadDll.exe は先に進み、アプリケーション フォルダー内の EmptyDll.dll ではなく、C:\EmptyDll.dll を読み込みます。
いずれかのマニフェストを壊すと (EmptyDll.dll マニフェスト ID のバージョン番号を変更するなど)、LoadDll.exe が読み込まれないため、マニフェスト ファイルは Windows によって読み取られて処理されますが、無視されます。
誰でもアイデアはありますか?
ありがとう!
トビー
visual-studio-2008 - Visual Studioプロジェクト内から、ClickOnceアプリケーションに展開する必要のあるアセンブリファイルと非アセンブリファイルの両方を定義するにはどうすればよいですか?
そのため、Visual Studio内から、ClickOnceアプリを使用して展開する必要のあるファイルとアセンブリを定義する方法があるかどうかを調べようとしています。
アプリケーションを「公開」したいので、Mageでこれ以上変更を加える必要はありません。特に継続的インテグレーションの場合。
これは可能ですか?これを行うために、app.manifestファイルに何かを追加できますか?
android - Android アプリのアイコンを他のアプリケーションで使用できるようにする
アプリケーション アイコンを他のアプリケーションで使用できるようにしたいと考えています。
これは少し不明確であることを理解していますので、説明してみてください:
アストロズ プログラム マネージャーなどのアプリケーションは、アプリケーションをアイコンで一覧表示します。標準の Android アイコンを表示している私のものを除いて、すべてのアプリで、これはランチャーの正しいアイコンです。以下を使用してアイコンをマニフェストとして設定しました。android:icon="@drawable/runninglate"
これはランチャーで機能しますが、Astro には、プロジェクトを作成したときのデフォルトのアイコンがまだ表示されます (かなり前に削除しました)。また、これが標準である場合に備えて、アイコン ファイルの名前を icon.png に変更しようとしました。これもうまくいきませんでした。
私は明らかに何か間違ったことをしている、またはどこかで設定を見逃しています.誰かが私を正しい方向に向けることができます.
c++ - マニフェストを介した DLL リダイレクトで DLL ファイルが 2 回読み込まれる
との暗黙的なリンクを引き起こすVisual C++ DLL ファイル プロジェクトにを含めpython.h
ています。ただし、特定のもの (コンピューターに複数存在する可能性があります) を読み込みたいので、 test.manifestという名前の非常に単純なマニフェスト ファイルを作成しました。python25.dll
python25.dll
そして、次のおかげで、Visual Studio によって生成された自動的に埋め込まれたマニフェスト ファイルとマージしています。
python25.dll
マニフェストによって要求されたものと、Windows が検索順序で見つける必要があるものです。
Process Explorer のスクリーンダンプ http://dl.dropbox.com/u/3545118/python25_dll.png
なぜそれが起こっているのですか? マニフェストが指す DLL ファイルをロードするにはどうすればよいですか?
java - jar が私のマニフェストを無視するのはなぜですか?
次のコマンドを使用して、実行可能な jar を作成しようとしました。
マニフェストには次のものが含まれます。
しかし、jar を実行しようとすると、次のようになりますFailed to load Main-Class manifest attribute from my.jar
。jar を抽出したところ、そのマニフェストの内容は次のようになっていることがわかりました。
私のマニフェストが無視されたのはなぜですか?
編集:-e
フラグを使用してエントリポイントを指定でき、jar が正しいマニフェストを生成することは知っていますが、このバージョンを機能させる方法を知りたいです。
vb6 - アプリケーション マニフェストを VB6 exe に埋め込む
私は最近、VB6 で書かれた一連のスタンドアロン ユーティリティ アプリを調べて、Windows Vista 以降でレジストリの仮想化がオフになっていることを確認しました。各 exe のスタンドアロン マニフェスト ファイルを作成し、requestedExecutionLevel
適切に設定し (HKEY_LOCAL_MACHINE
レジストリ キーを変更する必要があるものもあれば、変更しないものもあります)、テストしました。それらはすべて正しく機能しているように見えます。
小さな問題が 1 つだけ残っています。それらはスタンドアロンのユーティリティであるため、人々はそれらをネットワーク上にコピーして手動で実行することに慣れています。マニフェスト ファイルと exe をコピーするのを忘れると、exe は実際のレジストリ キーではなく、仮想化されたレジストリ キーに静かに書き込み、デバッグが困難な問題を引き起こします。
明らかな解決策は、マニフェストをリソースとして exe に埋め込むことです。私がネットで読んだすべての記事では、次のようにリソースを埋め込むように指示されています。
VB コンパイラが常にリソース ID = 1 のアプリケーション アイコンを作成することを除いて、これは問題なく動作するはずです。上記のコードを試したところ、Windows は exe の実行を拒否し、リソース エラーについて不平を言いました (この投稿を次のように更新します)。詳細は後述)。リソース ID を別の番号に変更してみました。その後、Windows はプログラムを正常に実行しましたが、マニフェストの内容を認識しませんでした。
埋め込まれたマニフェストを VB6 exe で動作させる方法を知っている人はいますか、それとも外部ファイルをそのまま使用する必要がありますか?
更新 1
上記のテキストは、.rc
ファイルの内容全体です。.res
次のようなファイルにコンパイルします。
"%ProgramFiles%\Microsoft Visual Studio\VB98\Wizards\rc.exe" /r /fo "Resources.res" "Resources.rc"
そして、次のように VB6 プロジェクト ファイルに埋め込みます。
コンパイルされた exe を VS2008 リソース エディターに読み込むと、次のようになります。
VS2008 でまったく同等の VB.NET テスト アプリを作成し、それをリソース エディターに読み込むと、代わりに次のようになります。
更新 2
テスト - .NET exe は Windows XP と Windows 7 の両方で問題なく動作します。ただし、XP では VB6 exe で次のエラーが発生します。
アプリケーションの構成が正しくないため、このアプリケーションを開始できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります。
そして7の次のエラー:
サイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーション イベント ログを参照するか、コマンド ライン sxstrace.exe ツールを使用してください。
イベント ログを見ると、次のエントリが表示されます。
"RegistryTestVB6.exe" のアクティベーション コンテキストの生成に失敗しました。マニフェストまたはポリシー ファイル "RegistryTestVB6.exe" の 10 行目にエラーがあります。無効な XML 構文です。
言うまでもなく、XML は無効ではありません。これは、私が .NET exe に使用したのとまったく同じエンコーディングのファイルであり、動作します。
解像度
VB6 コンパイラでは、リソースに含まれる任意のテキスト ファイルが正確に 4 バイトの倍数である必要があります。BOM を含む合計ファイル サイズが 4 の倍数であると Notepad++ が通知するまで、XML にスペースを追加するだけでした。
正しい方向に向けてくれたマイケルとジムの両方に感謝します。残念ながら、あなたの両方を答えとしてマークすることはできません!
java - MANIFEST.MF で定義された値にプログラムでアクセスできますか?
Java マニフェストで定義された値にコードからアクセスできますか?