-
05-09-2019 - |
質問
いプロジェクトにVisual Basic2008のです。に変換しますから、他の人のC#プロジェクトです。いくつかのDLLの依存関係.に行った公開プロジェクトでインストールする他の機械を各DLL、または、エラー:"組み立て強くなくてはいけない署名するための目印としてとを条件とします。" もちろん、一部の研究がいかに多く、私たんです。このエラーを意味するのか。には、どうするのがベストな解決のですか?他のもの:かかったとのことで長時間を得ることができすべての私のdllの参照が正しくない。性な移動のDLLのですが、機能主なプロジェクト.
解決
、公開ページに移動し、「アプリケーションファイル」をクリックしてください。そこから、あなたのDLLの一覧が表示されます。あなたにトラブルを与えているものは自分ではなく、「前提条件」より「インクルード」としてマークされた状況を公開していることを確認します。
これは何のエラーメッセージが意味することは、現在の公開設定は、インストールを行う前に、当該アセンブリのすべてがターゲットマシン上のグローバルアセンブリキャッシュに存在することを期待しようとしているということです。 GACのすべてのアセンブリが署名強くなければならないので、任意のアセンブリが強いあなたにこのエラーを与える署名されていない前提条件としてマークされます。
他のヒント
の回避策がより簡単なよう
- へとができます。
- 右クリックしてプロパティ(Properties)を選択します。
- Goセキュリティタブがあります。
- チェックを外するClickOnceセキュリティ]が選択されます。
まな展開を本アプリを通じてClickOnceする必要がなくなり、より快適なるStrongNameお構成に基づいています。
強く名前のアセンブリは、主にアセンブリしている署名、暗号化鍵があります。これはかなりやすいVisual Studioおよび必要としない再順序付けの依存関係.
私が使っている非特急Visual Studioでの操作が若干異なります。
- プロジェクトを右クリックして、プロパティ(properties)を選択し
- クリックし、署名のタブ
- チェック"の看板の組立"
- コンボボックスを選択し"<New...>"
- 完全なウィザードの
- 再構築
このリンクをチェックアウト...それは厳密な名前を使用してアセンブリに署名するための手順があります:
で入力し、プロンプトだけSDKコマンドプロンプトまたはVisual Studio 200Xコマンドに行く厳密な名前を作成するには、次の
sn -k sgKey.snk
の詳細については、このリンクを参照してください
次に、以下のコマンドを実行して、アセンブリに厳密な名前を関連付ける
al /out:MyAssembly.dll MyOldAssembly.dll /keyfile:sgKey.snk
の詳細については、このリンクを参照してください
これはちょうど私のために働きました
、もう一度それを追加し、エラーにアセンブリへの参照を削除します。
私は
私の問題は、.csprojファイルであることが判明しました<Reference Include="OtherProjectNothingToDo">
<HintPath>..\..\..\..\Pedidos\XBAP\Pedidos\Pedidos\bin\Release\Pedidos.exe</HintPath>
</Reference>
それから私は、メモ帳を使用して、それを削除し、それが今で大丈夫です。
アダムロビンソンのソリューションを使用するには、私は公開することができますが、私は、ユーザーがそれ一度プロジェクトをインストールすることができなかったことがわかりましたエンドユーザのシステムは、ハードドライブの空き容量に注意して、インストールすることができないで文句を言うだろうとして、出版されました。これは根本的な原因であることが非常に低いように見えたとして、私はさらにそれに見えます。
どうやら私の問題のための根拠は、私の参照の一つがまた私のプロジェクトは、使用の.dllが、異なるバージョンを参照したということでした。 ClickOnceのは、既に存在しているバージョンを引用し、これを持って、ユーザーのシステムへの.dllの第二のバージョンをコピーすることを拒否していませんでした。 .dllファイルおよびその他の.dllの同じバージョンを参照するプロジェクトがエラーを削除してインストール問題を修正して、それを修正ます。
ターゲットフレームワークが実際に3.5に設定されていることや、あなたがターゲットに好きなフレームワークを確認してください。それが適切に設定されていないとき時々それが出てエラーになります。
私は、あまりにもこの問題を抱えていました。私の場合はblabla.dllは私の溶液中で参照されましたが、blabla.dllも私は私のプロジェクトで参照していたanother.dllで使用された。
両方のバージョンを確認するには、彼らは同じではありませんでしたblabla.dll。だから私は正しいblabla.dllでanother.dll更新し、その後、私の溶液中での新しいanother.dllを参照しました。エラーが消えていた。
要するに:私はblabla.dllの2つのバージョンを使用していた
私は、私に知らせていない場合、これは理にかなって願っています。 :)
より詳細な説明については私のブログをチェックしてください: ブログ記事の
よろしく、ヤコブIedema