[解決済み] Visual Studioアプリケーションをインストールせずに実行するための最適なデプロイ方法
質問
C#/.NET でかなり簡単なアプリケーションを書いたのですが、それを公開する良い方法がわかりません。それは、ユーザーが一度だけ実行するか、または数ヶ月ごとに実行するような、一種の "ツールです。このため、実行するためにインストールする必要がない (ダウンロード後すぐに EXE ファイルをダブルクリックするだけで実行できる) 配置方法があることを期待しています。
しかし、正しく実行できるように、.NET の正しいバージョン、ライブラリなどを含める必要があります (どういうわけか)。これは ClickOnce を使用するときに含まれることは知っていますが、それでもユーザーのコンピューターにアプリケーションをインストールすることになります。
これを行う方法はありますか。
EDIT - \binDebug
myAppName.application
myAppName.exe
myAppName.exe.config
myAppName.exe.manifest
myAppName.pdb
myAppName.vshost.application
myAppName.vshost.exe
myAppName.vshost.exe.config
myAppName.vshost.exe.manifest
extraLibrary.dll
と、2つのフォルダー
app.publish
Resources
どのように解決するのですか?
それは可能であり、驚くほど簡単です。
- アプリケーションを (たとえば、C ドライブのいくつかのフォルダーに) 発行するには、メニューから ビルド メニューから、またはプロジェクトのプロパティから → 公開する . これでインストーラが作成され クリックワン アプリケーションのインストーラーを作成します。
-
しかし
を使用する代わりに、生成されたインストーラーを使用して
を使用するのではなく、生成されたファイル (EXE ファイルと
.config
,
.マニフェスト
そして
.アプリケーション
ファイル、および DLL ファイルなど) - これらはすべて同じフォルダーにあり、通常は
bin\Debug
フォルダーにあります。 .csproj ). -
そのフォルダを Zip で圧縮します (すべての
*.vhost.* を削除します。
ファイル、および
app.publish
フォルダ (これらは必要ありません)、および .pdb ファイル (ユーザーのシステムで直接デバッグする (たとえば、リモートコントロールで) ことが予想される場合を除く) を作成し、それをユーザーに提供します。
追加の利点は、ClickOnce アプリケーションとして、実行するために管理者権限を必要としないことです (アプリケーションがアプリケーション データ用に使用するフォルダーなどに関する通常のガイドラインに従う場合)。
.NET に関しては、アプリケーションに最小限必要なバージョンの .NET がインストールされているか (またはまったくインストールされていないか) をチェックし、Microsoft ウェブサイトのダウンロード ページへのリンクを含むダイアログを表示できます (または、Microsoft ページにリダイレクトできるページのいずれかを指定します - これは Microsoft URL が変更になってもより強固になります)。これは小さなユーティリティなので、ユーザーが .NET をインストールする確率を減らすために、.NET 2.0 をターゲットにすることができます。
うまくいきます。私たちは、アプリケーションを常にアンインストールおよびインストールすることを避け、最終的なアプリケーションがどのように実行されるかにかなり近くなるように、開発およびテスト中にこの方法を使用しています。
関連
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】Visual Studio 2012 Release Previewのインストール後に「LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt」エラーが発生する。
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] アプリケーションフォルダのパスを取得する最適な方法
-
[解決済み] ファイルまたはアセンブリを読み込めませんでした ... 不正なフォーマットでプログラムをロードしようとしました (System.BadImageFormatException)
-
[解決済み] Visual Studio 2012でテーマを切り替えるにはどうしたらいいですか?
-
[解決済み】Visual Studioをデフォルトで管理者として実行するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?