問題タブ [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.

0 投票する
4 に答える
15794 参照

c++ - Visual Studio C++ マニフェスト ファイルの操作

私は、オープン ソース ライブラリを利用していくつかの面倒な作業を行うコードをいくつか書きました。この作業は、単体テストと cmake を使用して Linux で行われ、Windows への移植に役立ちました。両方のプラットフォームで実行する必要があります。

私は Linux と cmake が好きで、ビジュアル スタジオ ファイルが自動的に生成されるのが好きです。今のところ、Windows ではすべてがコンパイルされ、リンクされ、テスト実行可能ファイルが生成されます。

ただし、この時点に到達するには、マニフェスト ファイルと再頒布可能パッケージについてすべてを学びながら、数日間 Windows と格闘しなければなりませんでした。

私の理解が進む限り:

VS 2005 では、Microsoft は Side By Side DLL を作成しました。これの動機は、以前は複数のアプリケーションが同じ dll の異なるバージョンをインストールし、以前にインストールされて動作していたアプリケーションがクラッシュする (つまり、「Dll Hell」) ことです。サイド バイ サイド DLL はこれを修正します。これは、どのバージョンを実行するかを指定する「マニフェスト ファイル」が各実行可能ファイル/DLL に追加されるようになったためです。

これはすべて順調です。アプリケーションが不可解にクラッシュすることはなくなりました。でも...

Microsoft は、Visual Studio のリリースごとに新しいシステム dll のセットをリリースしているようです。また、前述したように、私はサードパーティのライブラリにリンクしようとしている開発者です。多くの場合、これらは「プリコンパイル済み dll」として配布されます。では、あるバージョンの Visual Studio でコンパイルされたプリコンパイル済み DLL が、別のバージョンの Visual Studio を使用するアプリケーションにリンクされるとどうなるでしょうか。

私がインターネットで読んだことによると、悪いことが起こります。幸いなことに、私はそこまで到達することはありませんでした.実行可能ファイルを実行しているときに「MSVCR80.dllが見つかりません」という問題が発生し続けたため、このマニフェスト全体の問題への進出を開始しました.

最終的に、これを機能させる唯一の方法 (すべてを静的にリンクする以外に) は、すべてのサードパーティ ライブラリを同じバージョンの Visual Studio を使用してコンパイルする必要があるという結論に達しました。つまり、プリコンパイルされた dll を使用しないでください。新しいdllを構築し、代わりにそれを使用してください。

これは実際に本当ですか?私は何か見落としてますか?

さらに、これが事実であると思われる場合、Microsoft は悪意のある理由で意図的にこれを行ったと考えずにはいられません。

すべてのプリコンパイル済みバイナリが壊れて、プリコンパイル済みバイナリの使用が不必要に難しくなるだけでなく、サード パーティの独自ライブラリを使用するソフトウェア会社で働いている場合、彼らがビジュアル スタジオの最新バージョンにアップグレードするたびに、会社は必ず同じことをしないと、コードが実行されなくなります。

余談ですが、Linuxはこれをどのように回避しますか? 私はそれで開発することを好み、リンクの仕組みを理解していると言いましたが、この種の低レベルの共有ライブラリのバージョン管理の問題に遭遇するほど長い間アプリケーションを維持していません。

最後に、要約すると、この新しいマニフェスト スキームでプリコンパイル済みバイナリを使用することは可能ですか? もしそうなら、私の間違いは何ですか?そうでない場合、Microsoft は、これによりアプリケーション開発が容易になると正直に考えていますか?

更新 - より簡潔な質問: Linux はどのようにしてマニフェスト ファイルの使用を回避していますか?

0 投票する
17 に答える
79234 参照

java - NetBeans で実行可能な jar を生成する

私は NetBeans 6.5 を使用していますが、何らかの理由で、実行可能な jar が「すぐに」生成されません。

プロジェクトをメイン プロジェクトに設定し、プロジェクト プロパティの [実行] メニューでメイン クラスを定義しました。F6 を押して実行すると問題なく動作します。

マニフェスト ファイルを確認したところ、実際にはメイン クラスが定義されておらず、ライブラリの依存関係も省略されていました。



何か不足していますか?マニフェスト ファイルを手動で変更する以外に、実行可能な jar ファイルを生成する方法はありますか?

編集:はい、クリーンと再構築を試みましたが、dist フォルダーに jar が作成されましたが、まだ同じ manifest.mf です。

0 投票する
12 に答える
109622 参照

dll - Windows DLL のバージョンをダンプするコマンド ライン ツール?

bash スクリプト (Cygwin) を使用して処理できるように、標準の Windows DLL バージョン情報をダンプするコマンド ライン ツールが必要です。

Java 開発者として、私は Microsoft 開発ツールにあまり慣れていません (ただし、Microsoft Visual Embedded C++ 4.0 と Microsoft Visual Basic 6.0 の経験は少しあります)。

SO に記載されているように、適切なツールはmt.exeのようです。ただし、この小さなアプリケーションを入手する唯一の方法は、Windows Server 2008 および .NET Framework 用の Windows SDKの 1.29 GB ISO をダウンロードすることです。これが唯一の方法だとは信じられません。

PEViewというインターネット上の小さなアプリケーションも見つけましたが、表示される情報が多すぎて (私の場合は役に立たない)、コマンド ライン アプリケーションではありません。

Cygwin にバンドルされている標準のobjdumpも DLL ファイルに関する情報をダンプできますが、DLL のバージョンをダンプするオプションが表示されません。このツール (-p オプションを使用) によってダンプされる MajorImageVersion、MinorImageVersion、およびその他のフィールドは、独自の DLL バージョンに関連していないことに注意してください。

何をすべきかについての代替案はありますか?いくつかの重要な objdump オプションを見逃したのではないでしょうか? mt.exe しか選択できませんか? この場合、Windows SDK とは別に入手することは可能でしょうか?

0 投票する
1 に答える
1621 参照

security - ソリューションフレームワークを使用したSharepointでのCASポリシーの展開

SharePointソリューションメカニズムを使用してWebパーツを展開しています。今まではすべて正常に機能しましたが、manifest.xmlファイルにCASポリシーを追加すると、展開が正常に機能しません。CASポリシーを使用してソリューションを展開する場合、エラーは発生しませんが、ポリシーファイルは作成されず、dllはコピーされず、SafeControlsエントリはweb.configに追加されません。私のmanifest.xmlファイルは次のようになります:

その前に誰かがそのような問題を抱えていましたか?この時点でアイデアが足りなくなったので、提案を受け付けています。

0 投票する
3 に答える
2739 参照

c++ - Visual Studio 2005 - C++ - マニフェストの作成を制御するもの

「依存アセンブリmicrosoft.vc80.debugcrtが見つかりませんでした」というイベントエラーでデバッグビルドが爆発する理由を理解しようとしていました。

すべて(.cppまたは.h以外のもの)を削除してソリューションを再作成した後、まだ問題がありました。

Google 検索は役に立たず、VS を再インストールしても何の変化もありませんでした。

C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c に dll がありました。

\debug\.exe.intermediate.manifest ファイルを開くと、2 つの (dependentAssembly) エントリがありました: 1 つ目 :
name='Microsoft.VC80.DebugCRT' version='8.0.50608.0'
' バージョン ='8.0.50727.762'

1 つを削除して、もう 1 つを name='Microsoft.VC80.DebugCRT' version='8.0.50727.42' に変更すると、

開始するビルドを取得できます。

VS2008 をインストールしたことは確かですが、バージョンを制御しているのは何ですか? または、適切なデバッグ dll バージョンを「固定」する方法を教えてください。

VS2008 は、コントロール パネルからアンインストールされました。

編集: DebugCRT が検索された場合、レジストリに何も見つかりませんでした。
環境パスは VS8 フォルダを指しています。
c:\windows\winsxs\policies フォルダー
(8.0.50.727.42)には、DebugCRT フォルダーが 1 つしかありません
。 c:\windows\winsxs\manifests フォルダーには、.42 バージョンの .cat と .manifest しかありませ
ん(上記のマニフェスト フォルダー内) には version="8.0.50727.42" があります

明確化: マニフェスト ファイルには、.42 ではなく、それぞれ異なるバージョンの 2 つの "dependentAssembly" エントリがあります。1 つのエントリを削除し、もう一方のバージョンを .42 に一致するように変更して、デバッグ ビルドを開始することができます。

EDIT2:ブーストも使用しており、DLL内には.762バージョンがあります

0 投票する
4 に答える
3255 参照

windows - Windows アプリケーション マニフェストの診断

Windows アプリケーション マニフェストの文法は非常に緩く、認識されない部分は無視されます。どの部分が認識され、どの部分が認識されていないかを診断するにはどうすればよいですか?

この質問につながる問題は、指定されたhighestAvailableのrequestedExecutionLevelを持つサイドバイサイドUACマニフェストを持つアプリケーションにあります。これにより、Vista のファイル仮想化がオフになりますが、そうではありません。理由を知りたいです。マニフェストは使用されていますが、意図的に構文エラーを導入して確認しましたが、どのように使用されているかを判断する方法はありません。

0 投票する
2 に答える
491 参照

visual-studio-2008 - アプリケーションに管理者が必要であることを Visual Studio 2008 内で指定する方法はありますか?

管理者を要求するためにマニフェスト ファイルを埋め込む方法に関する記事をたくさん見ますが、私が見つけた問題は、バージョン番号番号を自動インクリメントすることです。毎回バージョン番号を更新する必要があります。

VS でマニフェストを生成して自動的に埋め込み、AssemblyInfo.cs ファイルの情報で更新する方法はありますか?

0 投票する
1 に答える
416 参照

.net - .NET は Windows Eventing 6.0 をサポートしていますか?

C# アプリケーションから Windows Eventing 6 API を使用して、Windows Server 2008 イベント ログの特定のチャネルにメッセージを記録したいと考えています。使用方法については良い例がありますが、これは C++ のみです。この例では、.NET が Windows Eventing 6 をサポートしていないことが言及されてます。 /en-us/library/aa382690(VS.85).aspx

私の質問は、C# でそれを行う方法です。または、この API の .Net サポートがあるかどうか知っていますか。