31

ClickOnce を使用して .net アプリケーションを発行しました。プログラムを開こうとすると、すべてのユーザーに次のエラー メッセージが表示されます。

「アプリケーションをインストールまたは実行できません。アプリケーションでは、最初にアセンブリ Telerik.Windows.Data バージョン 2012.1.215.40 をグローバル アセンブリ キャッシュ (GAC) にインストールする必要があります」.

アプリケーションで実際に使用しているバージョンは、エラー メッセージに記載されているバージョンよりも新しいものです。また、アプリケーションの開発に使用するマシンでもこの問題は発生していません。なぜ古いバージョンのdllを探しているのだろうか。アプリケーションによって参照されている場所が見つかりません。

これについて私を助けてもらえますか?

4

4 に答える 4

41

ここで解決策を見つけました:

http://ablogontech.wordpress.com/2009/01/02/unable-to-install-or-run-the-application-the-application-requires-that-the-assembly-be-installed-in-the-グローバル アセンブリ キャッシュ gac ファースト/

ワードプレスのリンクからの抜粋:

最初の C# 運用アプリケーションをコンパイルしているときに、このエラーを受け取りました。プロジェクトの Visual Studio で次のことを行う必要がありました。

  1. ソリューション エクスプローラーで [参照] ノードを展開し、エラーに一覧表示されているアセンブリをクリックします。プロパティ グリッドの [ローカルにコピー] が「True」に設定されていることを確認します。
  2. プロジェクトのプロパティで、公開 | [アプリケーション ファイル] タブで、エラーにリストされているアセンブリの公開ステータスが [含める] に設定されていることを確認してください</li>
于 2012-07-19T14:48:23.380 に答える
3

私の場合、このエラー メッセージの原因となった問題は、不適切なライブラリ公開構成でした。

ライブラリ プロパティCopyLocal = falseを設定し、プロジェクト パブリッシュ アプリケーション ファイルでPublish StatusIncludeに設定すると、プロジェクトの再構築と次のパブリッシュの後、すべて正常に動作します。

したがって、ClickOnce コンパイラーに、このライブラリーをデフォルトでアプリケーションと共に公開しないように指示し、Publish State をPrerequisitesからIncludeに変更することで、ClickOnce にこのライブラリーをGACで検索しないように指示します。

于 2015-10-06T10:01:39.433 に答える
1

また、ファイルに間違ったアセンブリ バインディング リダイレクトがないことも確認する必要がありapp.configます。次のようなノードを探します。

  <dependentAssembly>
    <assemblyIdentity name="Telerik.Windows.Data" publicKeyToken="--SomePublicToken--" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-3.0.2.0" newVersion="3.0.2.0"/>
  </dependentAssembly>

このノードがまったく意味を成すように、範囲が理にかなっている、または単純であることを確認oldnewてください。私の最初の試みは、単純に削除して再度確認することです。一部の NuGet パッケージが古いバージョンの構成ファイルを混乱させ、このノードが新しいバージョンでは不要になることがあります (そして、自動的に削除されません)。

于 2017-01-09T15:07:34.287 に答える