8

最近、.NETがインストールされていないコンピューターにC#アプリケーションを展開しようとしています。

StackOverflowで同じトピックについて多くの質問があったことを私は知っています。ここにそれらのいくつかがあります、そのうちの私はすべてへの応答を読みました:

.netアプリケーションのデプロイメントを使用して.netフレームワークをパッケージ化する

.netクライアントプロファイルをインストールせずに.netアプリケーションを実行しますか?

.NET Frameworkをインストールせずに、Windows XPでC#Windowsアプリケーションを実行する

したがって、上記の質問に対するすべての回答は、特定のソフトウェアなどがなければ不可能であると述べています。言及されたソフトウェアの1つは、Salamander.NETLinkerでした。それに関する唯一の問題は、Salamenderによって処理された後、アプリケーションを実行できないように見えることです。.NET仮想マシンを実行する必要があるため、これ自体は不可能であることを理解しています。ただし、過去にJavaアプリケーションを作成し、それらと一緒にJVM全体を出荷しました。驚いたことに、彼らはまだ働いていました。したがって、これが上記の質問と重複しない理由は、私の本当の質問が次のとおりであるためです。

.NET Frameworkのどのアイテムをパッケージ化する必要がありますか?すべてをパッケージ化できた場合、実行しているアプリケーションと同じディレクトリにそれらを配置すると、アプリケーションを実行できるようになりますか?

これに対する1つの解決策、 Microsoft .NETRedistPackageを見つけました。これに関する唯一の問題は、独自のGUIがあることです。それを除けば、それは完璧にフィットするでしょう。だから、誰かが私に2つのことのいずれかを教えてもらえますか?

コマンドラインの.NETパッケージはありますか?ある場合、どこでダウンロードしますか?

ない場合、またはそうすることが非現実的である場合、.NETインストールからコピーする必要があるディレクトリはおおよそどのくらいですか?

これらのファイルとディレクトリはシステム固有であり、私の.NETインストールはコンピュータで機能しない可能性があることを理解していますが、C#がJavaのようなものであれば、これは達成可能であるはずです。それは...ですか?サイズは制限ではありません。アプリケーションとそのすべてのファイルが1GBであるかどうか、または1MBしかないかどうかは私には関係ありません。

他に解決策がない場合は、DependencyWalkerを使用してプログラムのすべての依存関係を確認しました。それらのほとんどをパッケージ化した場合、理論上、私のアプリケーションは機能しますか?

4

3 に答える 3

12

.NETの場合、実際には適切な.NETFrameworkをインストールする必要があります。.NET Frameworkのインストールには、次のようなサイレントインストールを可能にするコマンドラインオプションが含まれています。

dotnetfx35.exe /q /norestart

コマンドラインオプションの詳細については、3.5および.NET4.0のオプションを参照してください。

そうは言っても、ほとんどのインストールパッケージは、インストールの一部としてこれらの詳細を処理します。適切なインストーラーを使用すると、この依存関係が自動的に処理されます。

于 2012-04-06T23:05:08.023 に答える
8

必要な.NETFrameworkの部分に応じて、Monoを使用できます。JVMのようにインストールせずにランタイムを出荷することをサポートします。または、バイナリに対して静的にリンクして、ネイティブの実行可能ファイルを作成することもできます。

于 2012-04-06T23:09:26.890 に答える
2

アプリケーションの展開を計画している場合(およびセットアッププロセスがそれほど複雑である必要はないと想定している場合)、Visual Studioでセットアッププロジェクトを作成し、前提条件(.NET Framework、およびその他の必要なもの)をブートストラップするだけです。必要かもしれません)。

次のMSDN記事で説明されている手順に従うことができます。

ウォークスルーは、このCodeProjectの記事に記載されています。

より複雑な展開シナリオ(アプリに沿ったデバイスドライバーのインストールや、より優れたローカリゼーションサポートなど)については、 WiX(WindowsインストーラーXML)ツールセットを調べることをお勧めします。これは、Windowsインストールパッケージを構築するツールセットであり、VisualStudio内でXMLファイルを使用して構成します。WiXは、さまざまなブートストラップシナリオもサポートしています。

このページでは、VSセットアッププロジェクト、WiX、およびInstallShieldの違いについて説明します。

于 2012-04-06T23:23:43.313 に答える