2012-04-06 6 views
8

私は最近、.NETがインストールされていないコンピュータにC#アプリケーションを展開しようとしています。.NETアプリケーションをパッケージ化して.NETなしでコンピュータ上で実行する

私は知っている多くの質問StackOverflowで同じトピックの周り。

Packaging up the .net framework with a .net application deployment

Run a .net application without installing .net client profile?

Run C# windows application in windows XP without installing .NET Framework

だから、上記の質問に対する回答のすべてが、それがなくては不可能であると述べている:ここで私はすべてに回答を読んで、そのうちのそれらのいくつかをされています1つのソフトウェアはSalamander .NET Linkerでした。唯一の問題は、Salamenderによって処理された後にアプリケーションを実行できないように見えることです。 .NET仮想マシンを実行する必要があるため、これ自体は不可能であると私は理解しています。しかし、これまではJavaアプリケーションを作成しており、JVM全体を出荷しました。意外にも、彼らはまだ働いた。したがって、これが上記の質問と重複しない理由は、私の本当の疑問があるからです:

私はパッケージ化する必要がありますか?私がすべてをパッケージ化することができれば、実行しているアプリケーションと同じディレクトリにそれらを置くとアプリケーションを実行できますか?

これには1つの解決策が見つかりました。Microsoft .NET Redist Packageこの問題の唯一の問題は、独自のGUIがあることです。それとは別に、完璧なフィット感があります。だから、誰でも私に2つのうちの1つを教えてもらえますか?

コマンドラインの.NETパッケージはありますか?あれば、どこからダウンロードすればいいですか?

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

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

他の解決策がない場合は、Dependency Walkerを使用して、自分のプログラムのすべての依存関係を確認してください。私がそれらのほとんどをパッケージ化するなら、私のアプリケーションは、理論的にはうまくいくのでしょうか? .NETの場合

+0

これらの静的リンカーはひどい考えです。あなたのアプリケーションは、セキュリティ修正やその他の拡張機能(Windows Updateなど)の恩恵を受けることはありません。 –

答えて

12

、あなたは本当にだけで、適切な.NET Frameworkをインストールする必要があります。 options for 3.5.NET 4.0のためを参照して、コマンドラインオプションの詳細については

dotnetfx35.exe /q /norestart 

:.NET Frameworkのインストールは、次のようなサイレントインストール、可能にするために、コマンドラインオプションを含んでいます。

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

+0

完璧に動作します!助けてくれてありがとう! – Xyene

+0

は、それがインストールされているどのくらいを示して作るために任意のコマンドは、など...パーセント、または現在のファイル解凍のような形式で、ありますか?私はあなたが投稿3.5リンクのオプションをチェックしますが、そこではこれらの行の中で何かを見つけることができませんでした。 – Xyene

+0

まずはGUIは不要ですが、今はそうしていますか? –

8

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

2

アプリケーションを展開する予定がある場合(セットアッププロセスが複雑すぎるとは限りません)、Setup project in Visual Studioを作成して、前提条件(.NETフレームワークなど)をブートストラップするだけです必要かもしれない)。

あなたはこれらのMSDNの記事で説明した手順に従うことができます:

ウォークスルーがthis CodeProject articleに与えられています。

(例えば、あなたのアプリに沿ってデバイスドライバをインストールするように、またはより良いローカライズサポート)、より複雑な展開シナリオについては、私はWiX (Windows Installer XML) toolsetに探してお勧めします。これは、Visual Studio内のXMLファイルを使用して構成するWindowsインストールパッケージを構築するツールセットです。 WiXは様々なbootstrapping scenariosもサポートしています。

This pageは、VSセットアッププロジェクト、WiX、およびInstallShieldの違いをカバーしています。

関連する問題