問題タブ [wise]

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 投票する
2 に答える
304 参照

windows-installer - アンインストールが実行されていることを確認するには、何を確認する必要がありますか?

アンインストールを実行していない限り、ユーザーが MSI ファイルを直接実行できないように、インストーラーで起動条件を設定する必要があります。(他のすべてのタイプのインストールは、すべての前提条件が満たされていることを確認できるように、ブートストラップ アプリから実行する必要があります。)

これを確認するには、どのような条件が必要ですか? 試してみましたREMOVE="ALL" OR BOOTSTRAP(BOOTSTRAPこれは、ブートストラップ アプリが MSI を起動するときにコマンド ラインで定義するプロパティです) が、修復インストールでもトリガーされますが、これは望ましくありません。

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

windows-installer - Windowsインストーラーにショートカットを名前を変更したものに置き換えるように強制する方法は?

最近、いくつかのデスクトップ ショートカットの名前を少し変更する必要がある機能をインストーラーに追加しました (バージョン番号が名前に追加されました)。インストーラーが古いショートカットを新しいものに置き換えるのに問題があります。問題が最初に報告されたとき、新しいショートカットはインストールされていましたが、古いショートカットは削除されていませんでした。問題に取り組んだ後、私は複雑な問題を抱えています: 古いショートカットの 1 つが削除されています (これまでのところ、とても良い) が、もう 1 つは削除されていません (あまり良くありません)。どちらの場合も、新しいショートカットはインストールされていません (さらに悪いことに)。これらのショートカットをインストールする各コンポーネントの GUID を変更しようとしましたが、ある時点で、ショートカットを担当する各マージ モジュールの ProductCode プロパティを変更しようとさえしました。

関連するコンポーネントだけを再 GUID すると、インストール状態のログ ファイルが次のように表示されます (デバッグを容易にするために、コンポーネントの名前を少し変更して、古いビルドのものと古いビルドのものを区別できるようにしました)新しい):

ログでわかるように、新しいショートカットはどちらの場合にも入るはずですが、そうではありません。また、インストーラーが 2 つの古いショートカットを使用して異なることを行っている理由を説明することもできません。

参考: 私の開発環境は Wise Installation Studio 7.0 です。

編集:現在の ProductVersion と ProductCode を除いて、すべてを以前のものにリセットしました。これを行うと、インストーラーは古いショートカットをインストールしたままにしますが、新しいショートカットはインストールしません。(これは、最初に報告され、複製できたものとは異なる動作です。つまり、古いショートカットがインストールされたままになり、新しい (名前が変更された) ショートカットもインストールされました。) 2 つの関連するコンポーネントを再 GUID した後、インストーラー古いショートカットは削除されますが、新しいショートカットはインストールされません。(これはXPで起こっていることです。)

コンポーネントを再 GUID した後のログの関連行は次のとおりです。

最初の 2 行は、新しいショートカットがインストールされていることを示しているようですが、まだインストールされていません。後で修復すると、新しいショートカットがインストールされます。

元の問題 (アップグレード後に古いショートカットと新しいショートカットの両方が存在する) が複製される可能性のあるインストーラーのコピーを実行すると、上記の最後の 2 行で報告されるアクションは、Absent ではなく Null になります。

編集 2:現在の動作では、古いショートカットがインストールされたままになり、新しいショートカットはインストールされません。コンポーネントを再 GUID すると、古いショートカットは削除され、新しいショートカットはまだインストールされていません。Christopher Painter のソリューションを試しましたが、どちらもうまくいきませんでした。(その回答に関する私のコメントを参照してください。)古いバージョンのないショートカットの代わりに、新しいバージョンのショートカットをインストールする方法が必要です。機能するソリューションを提供できる人はいますか?

編集 3:結局のところ、新しいショートカットがインストールされないという新しい動作は、ソース ファイルを取得する際に犯したミスが原因であり、インストーラーに入ったファイルは最新ではありませんでした。交換する予定だったものとして。最新のファイルがインストーラーにコンパイルされると、目的の結果を得ることができました (古いショートカットはアウト、新しいショートカットはイン)。(詳細については、私の回答を参照してください。)

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

uninstallation - WISE Uninstaller doesn't remove itself

I know, I know...stop using WISE. That's not really an option for me right now. We have too much on our plate to write a completely new installer and change our entire build process, which is what would have to be done.

ANYWAYS, the problem is that our uninstall EXE doesn't delete itself when uninstalling. It is located in the Program Files folder, where our app is installed. After the uninstaller is done, we want all files removed and the app folder deleted. Instead, the uninstaller remains along with the app folder, since it can't seem to remove itself while it is running.

This seems like a rudimentary task, since all the other programs installed on my computer have their uninstallers located in their Program Files folder as well and they are removed after uninstalling, yet I can't seem to find anyone else with the same problem via Google. It makes sense to me that the file can't be deleted since it is currently loaded into memory, but *whining tone* everyone else does it...why can't I?

EDIT: If it helps, I am running Wise Installation Studio 7.0 and modifying the uninstall script in the WiseScript Package Editor. The part that removes the Program Files folder looks like Delete File(s) %MAINDIR%\*.* where %MAINDIR% is the app folder in Program Files. There are two available options for this command (both of which are on)--Include Sub-Directories and Remove Directory Containing Files.

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

windows-installer - MSI 経由で目的のコンピューターに cab/zip ファイルを展開します。

パスの長さが 255 文字を超えるソース フォルダーの長い階層があります。

これらは、宛先コンピューターに展開する必要があるいくつかのデモとサンプル ファイルであり、めったに変更されません (過去 2 年間変更されていません)。また、MSI 出力用のルース非圧縮メディアもあります。

現在、ロング ビア ファイル名:ファイル名のペアを処理しています。サンプル フォルダーのすべてのコンテンツを圧縮して、1 つのファイルにし、保守を容易にすることができるかどうか疑問に思っています。

問題は、この zip/cab ファイルを INSTALLDIR の宛先コンピューターに抽出する方法です。

注: 7zip またはオープン ソースのエクストラクタを宛先コンピュータに展開できません。

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

installation - Wisescriptの背後にあるものを理解しようとしています

Wisescriptに関して2つの質問があります。

(Wisescirptに慣れていない場合は、MSIと同じようにインストーラーを作成できます)

Wisescirptリファレンスガイドの中には、次のようなことわざがあります。

「WiseScriptエンジンはC++で記述されているため、WiseScriptをビルドすると、C++プログラムをビルドすることになります。」

だから私の最初の質問は:どうすれば自分の賢明なスクリプトのC ++を見ることができますか?

2番目の質問は、VBscriptとWisescriptの関係がわからなかったことです。また、VBscriptをWisescriptにインポートするオプションがあることも知っています。また、メモ帳でWisescriptを開くと、VBscriptのようなコードが表示されます。私はそれをVBscriptではありません

簡単に言うと、2番目の質問は次のとおりです。WisescriptとVBscriptの関係は何ですか。(私はインタープリター、コンパイラーレイヤーを理解することに興味があります。)

ありがとう、

ダン

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

installation - Wise Installer Editorでロールバックカスタムアクションを実行するにはどうすればよいですか?

特定のカスタムアクションを使用するインストーラーを作成しています。インストールがキャンセルまたは失敗したときにこの変更を元に戻すロールバックアクションを作成したいと思います。

私がこれまでに試したことは、ドキュメントに指示されていることです。これは、遅延モードでCAを呼び出し、スクリプト内オプションで「ロールバックのみ」を設定することです。インストールをキャンセルすると、インストーラーがCAを呼び出そうとした瞬間にインストールが失敗し、CAの内容が何であるかは関係なく、インストーラーがCAを呼び出そうとした瞬間に常に失敗します。「インストールからWiseScriptを実行」でCAが呼び出されても、インストーラーはインストールに必要なプログラム(CA)の検索を実行できなかったため、CAが存在する必要があります。

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

windows - Win API呼び出しを介してWindowsビルドバージョンを読み取る方法、または(より良い)レジストリ値を読み取る方法

インストールされている Windows が間違ったバージョンの Windows を検出することがあります。(システム情報を検出するために組み込みの Wise インストーラー機能を介してバージョンを検出し、これを行う方法については述べていません)。

そこで、Windows のバージョンを検出する別の方法を探しています。Wise インストーラーは、Windows API 関数を呼び出す機能がかなり制限されているため、レジストリまたは特定のファイルから読み取る方が簡単です (もちろん、ファイルのバージョンを Windows のバージョンにマップする必要があります)。

このディスカッション スレッドを見つけました: http://www.velocityreviews.com/forums/t513244-best-way-to-get-version-from-registry.html しかし、引用はありませんでした。そのため、信頼性が高いかどうかはわかりません。

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

wise - Wise Installer でファイルを上書きする必要はありません

Wise Installation Express 7.0 を使用してアプリケーションのインストーラーを作成します。私のインストールには、ユーザー名とパスワードを保持するファイルがあります。アプリケーションのインストール時またはアンインストール時に、インストール/アンインストールする必要があります。ただし、アプリケーションがアップグレードされた場合、そのファイルを上書きする必要はありません。ワイズでそれを行うにはどうすればよいですか?ありがとう。

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

windows-installer - Wise Installer Studio 7.0 を使用すると、カスタム アクションが実際のエラー コード 1154 を返しました。

まず第一に、これは解決された問題と非常によく似ています。カスタム アクションは、WiX 経由で使用される C# でエラー 1154 で失敗します。

ただし、自分の状況で問題を解決するための具体的な手順を特定できませんでした。うまくいけば、誰かが私を正しい方向に向けることができます。

私の場合、Wise Installation Studio 7.0 を使用して、Server 2008 R2 以降で .Net Framework 3.5 SP1 のサーバー マネージャー機能を開始するために作成した C# カスタム アクションを実行しています。

Visual Studio 2010 でカスタム アクションを標準の .Net 2.0 クラス ライブラリとして作成しました。

私の推測では、ここで何か違うことをする必要があります。これは、マネージ DLL 以外のものとしてコンパイルする必要があるということです。私が使用しているコードは非常に簡単です...他の誰かがサーバー 2008 R2 の .Net Framework 3.5 SP1 問題の解決策を投稿したフレクセラ フォーラムから取得したものです。

VS2010でこれをどのように進めるべきかについてのアイデアはありますか? それとも、Wise Installation Studio パッケージの CA 構成に問題がありますか? 私が見る限り、VS2010 は管理された ActivateDotNetFramework.dll ファイルのみをビルドし、他には何もビルドしません。このファイルを wise パッケージのリソースに追加し、関数名を ActivateDotNetFramework としてリストしました。

私はこれを1日以上行っています。どんな助けでも大歓迎です。ありがとう。

ダン・リー AmazingCharts! リリースエンジニア

0 投票する
6 に答える
11825 参照

installation - 32ビットインストーラから64ビットレジストリへの書き込み

WiseInstallationStudioで記述された32ビットアプリケーションと32ビットインストーラーがあります。私は知っています...私はワイズを使うべきではなく、他のものに切り替えるべきです。しかし、今のところ、私はそれに固執しています。

私たちのアプリケーションはグラフィックを多用し、パフォーマンスを向上させるために、実行中にデスクトップ構成(Windows Aero)を無効にする必要があります。これは、32ビットシステムで次の場所にレジストリエントリを追加することで実現しました。

の値はDISABLEDWM

これにより、EXEのプロパティの[互換性]タブにある[デスクトップコンポジションを無効にする]チェックボックスがデフォルトでオンになります。

これは32ビットシステムでは完全に機能しますが、64ビットシステムでインストーラーを実行すると、Windowsはレジストリエントリの作成をにリダイレクトしHKLM\SOFTWARE\Wow6432Node、フラグが正しく設定されません。64ビットレジストリビューで手動でエントリを作成すると、機能します。

では、32ビットインストーラーから64ビットレジストリビューでこのレジストリキーを強制的に作成するにはどうすればよいですか?または、レジストリエントリの作成とは別に、このプロパティを設定するためのより良い方法はありますか?