基本的に、App.exeのコンポーネントの1つであるstrong-names(強く署名された)アセンブリx.dllがあります。アセンブリの署名鍵は、私たちのリポジトリであり、それはアセンブリは、アセンブリがのがそれに名前を付けてみましょう、一般的なパッケージをインストールし、いくつかのインストーラによってGACに置くことになっているcommon.msiユーザーのアプリケーションが変更されるたびにアセンブリをGACに再デプロイする必要があります
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFileAttribute(@"..\..\xxx.snk")]
[assembly: AssemblyKeyName("")]
を書き込むことによって署名されています。しかし、私たちのコンポーネント自体はApp.msiによってインストールされます。一緒にデプロイすると、すべてが機能します。しかし、App.msiに変更が加えられたとき、x.dllとはまったく関係がなく、App.msiが再展開されると、App.exeはx.dllを見つけることができません。 x.dllに変更が加えられていないことに注意してください。しかし、common.msiも展開されていると、すべてが機能します。だから私はビルドバージョンや何かについての問題、あるいは私が何も知らないマニフェストがなければならないと思っています。私が間違っていることが明らかなことはありますか?アセンブリを個別にデプロイするだけで、アセンブリが変更され、それを使用するコンポーネントが変更されるたびに再デプロイしない限り、アセンブリに触れることはできませんか?ありがとう。
編集:それはあなたがGACにそれをインストールしているのはなぜssembly GACに
これは要件ですが、変更することはできません。アセンブリは他のコンポーネントでも使用されることになっています。あなたの答えは残念ながら何も答えません –
"他のコンポーネントによって使用されています"は、GACにインストールする正当な理由ではありません。あなたは間違っているよ! – Cheeso
コンポーネントは、他のコンポーネントによって使用されるGAC内にある必要はありません。同じディレクトリになければなりません。 – Femaref