1

これを含む MyApp.exe.config があります。

<section name="keys" type="MyApp.KeysSection, MyApp" />

これは期待どおりに機能します。ただし、MyApp.exe の名前を MyApp.renamed.exe に変更し、構成ファイルの名前を MyApp.renamed.exe.config に変更すると、例外が発生します。「ファイルまたはアセンブリ 'MyApp' またはその依存関係の 1 つを読み込めませんでした。システムは指定されたファイルを見つけることができません。」

これは、構成ファイルがまだ MyApp アセンブリを参照しているためです。だから私はそれを読むように更新しました:

<section name="keys" type="MyApp.KeysSection, MyApp.renamed" />

アプリケーションを実行すると、「見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません」という新しい例外が発生します。

上記のメッセージの意味は理解できますが、新しいマニフェスト ファイルを生成しないとアセンブリの名前を変更できないということではないですか? 理想的には、アセンブリの名前を変更して、引き続き機能できるようにしたいと考えています。この理由は、アプリにはさまざまな「フレーバー」があり、MyApp.Flavour1.exe、MyApp.Flavour2.exe などのファイル名を使用したかったためですが、フレーバーごとに異なるマニフェストと構成ファイルを生成しないと機能しません。 、 そのまま。

私が求めているのは、ファイルの名前を変更してもこの例外がスローされないようにアセンブリを作成する方法があるかどうかです。

4

1 に答える 1

3

残念ながら、この方法でアセンブリの名前を変更することはできません。詳細については、名前が変更されたC#アセンブリの読み込みでFileNotFoundExceptionがスローされるを参照してください。

代わりに、同じまたは類似のファイルを含むさまざまなプロジェクトを作成するか、共通ファイルを別のアセンブリに移動して、さまざまな「フレーバー」アセンブリに共通アセンブリを参照させることができます。

于 2012-09-12T11:35:28.840 に答える