37

InstallShield LE(VS 2012に同梱されているもの)で簡単なインストーラーを動作させようとする悪夢があります。回避できる問題にはさまざまな種類があります(たとえば、すべてを台無しにしないと「すべてを再構築」できなくなります。開発中にInstallShieldプロジェクトをアンロードする必要があります)。しかし、大きな問題は、インストーラーをビルドすると、さまざまなDLLの間違ったバージョンが含まれていることです(プロジェクトの一部であるものと、Entity Framework DLLのようなサードパーティのものの両方を含みます)。

「クリーンソリューション」を実行しても、ソリューションに含まれるDLLの問題は修正されませんでした。それは私のマシンのどこか(ある種のコンパイラの一時ディレクトリ)でランダムなバージョンを見つけ、それを含めることを主張していました。最終的には、Windowsエクスプローラーで検索を実行し、見つかったすべてのファイルを削除することで修正しましたが、次にリリースを行うときに、間違ったファイルを選択することに成功するのではないかと心配しています。

さらに、マシンに.NET4バージョンと.NET4.5バージョンの両方のEntityFrameworkをインストールする必要があり、インストーラーに入るのに間違ったバージョンを選択しています。含めたくないものは削除できません。

なんて絶対に粗雑な製品でしょう。フルバージョンに「アップグレード」して、これらの問題のいずれかが修正されるかどうかを確認することはできますが、LEバージョンでの最近の経験により、これらの製品を再び使用することはできなくなりました。

他の誰かが同様の問題を抱えていましたか?解決策を見つけましたか?

4

6 に答える 6

19

古い投稿なので、おそらくこれはあなたや他の人がこの腹立たしい問題を経験するのを助けることができます(あなたが-6225のようなエラーを経験していると仮定して)。

症状:

  • Install Shieldプロジェクトを含め、各プロジェクトを問題なく(再)ビルドできます。
  • ただし、(複数のプロジェクトの)ソリューションを構築すると、エラーがポップアップするように見えます

試す:

  • VS 2012では、ソリューションを右クリックして、Project Build Order
  • 順序が正しく「見える」場合でも、依存関係を設定し続けます
    • たとえば、インストールプロジェクトはソースプロジェクトに依存します(もちろん、このツールは「認識」していないため、何らかの支援が必要です)。

これで「間違ったdll」の問題が解決するかどうかはわかりませんが(私はその苦痛を経験していません...)、プロジェクトの出力を確認する提案が役立つ可能性があります....上記は私の問題を修正しました。

はい、同意します。VS2010と同等であり、 セットアップおよび展開プロジェクトの使いやすさを下回る場合でも、開発者が対処しなければならないもう1つの学習曲線の1つです(時間の無駄)。それを粗雑と呼ぶ準備はできていませんが、それはいくつかの素晴らしい(r)キャンディーを持っています-「限定された」バージョンでさえ....。

とにかく、これがお役に立てば幸いです。

アップデート1

はい、私は正式にISLEshoddyと呼ぶことができます。私は今、「不足しているdll」(間違ったdllを忘れて、それらはintallフォルダーにさえなく、カラフルな言語を許しますが、WTF ?? !!)の問題をひどく経験しています。ISLEは適切な依存関係を特定できません-そして私は前の答えに同意しません。この問題は、VS2005以降のビルトインには存在しませんSetup and Deployment Projectでした。

ボーンヘッドMSの動きに関するコメントに同意しました。

この問題を修正したら、更新します。

アップデート2

私の修正(より良い方法がある場合は、答えを提供してください)。これはすべてISLEUIで行われます。

  1. 依存関係をスキャンします-プロジェクトのプライマリ出力を右クリックし、を選択しますDependencies from scan at build ステップ1スキャンして不足している依存関係を確認します

  2. 手動で追加する必要のある依存関係が表示されます。赤いアイコンで示されます。 チェックを外したので、 -6248の警告ステップ2不足している依存関係を特定する
    を 取り除くことができました。これは、ビルドで致命的なエラーになるはずなので、本当に奇妙なことです。このインストール方法/ setupは、依存関係がない場合に機能する可能性がありますか?警告はビルドを続行しますが、機能しませ

  3. 次に(はい)上記で特定した依存関係を手動で追加します...

ところで、これが重要かどうかはわかりません-ISLEを使用してVS 2010インストールプロジェクトをインポートすることからプロセス全体を開始しました( ISLE menu-> Visual Studio Deployment Project Import Wizard)。これが実際に重要かどうかはわかりません-re:(Dependencies from scan at buildインポートする代わりに)最初から始めた場合でも可能でしょうか?

VS2012のセットアップと展開の「進捗状況」についてはこれだけです...

お役に立てれば!

于 2013-04-23T02:38:49.267 に答える
3

最近、あなたが説明する問題が発生しました。コンソールアプリケーションは正しくビルドされ、ディレクトリに最新バージョンの依存関係がありますがbin、InstallShield LEと一緒にパッケージ化すると、古いバージョンの依存関係DLLが使用されます。

あなたが言うように:

「クリーンソリューション」を実行しても、ソリューションに含まれるDLLの問題は修正されませんでした。それは私のマシンのどこか(ある種のコンパイラの一時ディレクトリ)でランダムなバージョンを見つけ、それを含めることを主張していました。

私の場合、問題のあるファイルは、およびのASP.NET動的コンパイルキャッシュC:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\rootありました。C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root

これらのディレクトリの内容をクリアすると、問題が解決しました。

余談ですが、これらのディレクトリを自動的に空にするビルドアクションを追加することを考えましたが、所有権の権限を失うことなく、これを自動的に行うことはできませんでした。

于 2013-09-16T13:26:47.023 に答える
2

各セットアップツールには問題があります。アプリケーションの依存関係を正確に検出できるツールはないことに注意してください。ツールでできる最善のことは、提案をすることです。これが、ほとんどのセットアップ開発者が依存関係を自分で決定し、それらを手動でインストーラーに含める理由です。

InstallShieldに満足できない場合は、別のセットアップツールを試すことができます:http://en.wikipedia.org/wiki/List_of_installation_software

Advanced Installerの無料バージョンには、役立つ可能性のあるVisualStudioセットアッププロジェクトが含まれています。

于 2012-09-27T07:13:37.877 に答える
0

インストールシールドを使用する代わりに、プロジェクトを右クリックして公開ウィザードを実行するだけでプロジェクトを公開できます。単一イメージまたは選択したものとしてexeを作成します。最後に、すべての依存関係を処理します。したがって、公開ウィザードによって作成されたexeをインストールすると、自動的に実行されます。 .netフレームワークなどのすべての依存関係をインストールし、アプリケーションに必要なランタイムフレームワークがある場合は、それをインストールするように警告します。

あなたはこれを見ることができます

http://msdn.microsoft.com/en-IN/library/31kztyey.aspx

于 2013-05-09T06:32:29.550 に答える
0

DLLに問題がありました。それはどこかからずっと古いものをつかんでいました。このDLLのGACには何もありませんでした。私はすべてを試しました。最後に、右クリックして[追加]を選択することにより、[ファイル]セクションに手動(ISLE)で追加しました。\ obj\ReleaseフォルダにDLLが見つかりました。次に、リリースを再度ビルドし(SingleImage)、すべてが正しく機能しました。

于 2013-06-13T20:19:01.857 に答える
0

ソリューションを右クリック->プロジェクトの依存関係->セットアッププロジェクトを選択し、使用するプロジェクトを確認することで、ビルド順序の問題(ソリューションを再構築しようとする場合など)を修正できます。(VS2013でテスト済み)

InstallShieldプロジェクトは、ソースファイルを選択したときにこれらの依存関係を自動的に設定することを期待していましたが、明らかにそうではありません。

于 2015-10-09T00:31:52.033 に答える