再配布できないWindowsのプログラミング
-
20-09-2019 - |
質問
それは愚かな質問かもしれませんが、私のすべての私の試みはこれが失敗しました。問題は、再配置可能な再インストールされた再配置を必要としないWindowsアプリケーションをどのように開発できますか? .NETフレームワークや同様のものが含まれていないWindowsの古いバージョンの下でも実行されるアプリケーションを作成したいと思います。
ありがとう、ewolf
解決
まず、C ++、CLRなしなどの母国語でプログラムします。
第二に、マニフェストを無効にし、外部DLL(STDCやMFCなど)のリンクを避けます。
他のヒント
Windowsの古いバージョンとはどういう意味ですか?
.NETフレームワークは、Windows 2003および.NET 1.1以降のWindowsの一部です。
したがって、Windows 2003より新しいWindowsバージョンをターゲットにしている場合は、.NETが利用可能であることを確認できます。
解決策もあります リンク/パッケージングを自動化します .NET製品の、そのため、再配布可能性などを出荷する必要はありません。
アップデート:
私はちょうどそれを見つけました 単核症 ランタイム全体を実行可能ファイルにリンクできます。
彼らはその機能を呼び出します バンドル.
それについてもっと読んでください ここ.
Delphiを使用 - IDEの新しいバージョンには奇妙なバグがありますが、再配布できないネイティブWindowsアプリケーションを簡単に作成できます。 C ++/Win32よりもはるかに使いやすい。
編集: Ewolfが指摘したように、彼は.NETとしてタグ付けされた元の質問にもかかわらず、.NETを必要としませんでした。
要するに、Win95/98/2000などの一部の古いマシンには、ランタイムがインストールされていない場合があります。 .NETを指定したので、.NETを使用してアプリケーションを構築すると仮定していますが、大きなものがありますが、.NETランタイムを事前にインストールする必要があります。.NETアプリケーションを実行できます。 2つの方法で簡単にそれを回避できます。
- .NETランタイムを手動でインストールするか、
.NETランタイムがインストールされているかどうかを検出できるカスタムインストーラースクリプトを使用して、.NETランタイム再配布可能をインストールします。
C/C ++などのネイティブアプリケーションについて話している場合、(依存を回避し、DLLの数を最小限に抑えるために)取るのに最適なパスは、標準のDLLのみを使用してRAW WinAPI32で開発することです。 commctrl.dll、user32.dll、advapi.dllが名前があります。最終結果は、より小さな実行可能ファイルになります。もちろん、DLLを静的にリンクして1つの大きなマンモス実行可能ファイルを形成することにより、他のDLLをバンドルできます。