1

カスタム コントロール アセンブリ (DLL) ファイルを Visual Studio ツールボックスに追加しようとすると、次のエラーが発生します。

アセンブリ "my assembly file" からの型の読み込み中にエラーが発生しました。

タイプによって違反された継承セキュリティ ルール: ItemsCollectionEditor。派生型は、基本型のセキュリティ アクセシビリティと一致するか、アクセスしにくくする必要があります。

さらに、問題を解決するために、アセンブリ SecurityRulesAttribute を AssemblyInfo.cs ファイルに追加します。しかし、それは私にはうまくいきませんでした。

私の AssemblyInfo ファイルコードは次のとおりです。

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;

[assembly: AssemblyTitle("WindowsFormsControlLibrary2")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("SSSSSSSSS")]
[assembly: AssemblyProduct("WindowsFormsControlLibrary2")]
[assembly: AssemblyCopyright("Copyright © SSSSSSSSS 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(false)]   
[assembly: Guid("ed5d434c-36e8-4883-a4d3-3eb6459546b3")]

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

[assembly: AssemblyKeyFile("Saino.snk")]
[assembly: AssemblyKeyName("")]
[assembly: System.Security.AllowPartiallyTrustedCallers]

[assembly: SecurityRules(SecurityRuleSet.Level2, SkipVerificationInFullTrust = true)]
4

2 に答える 2

1

mikalaiさん、ありがとうございます。あなたのコメントには手がかりがあります。そして、私は私の問題を解決することができました。あなたのコメントから、私のコードは正しく、他のことからの問題である可能性があることを理解しています。あなたのコメントに基づいて、私は問題を見つけて解決し、解決策を次のように説明します。

アセンブリ ファイルが GAC に登録され、アセンブリ ファイル コードが再度変更され、アセンブリ ファイルが再コンパイルされ、再コンパイルされた新しいアセンブリ ファイルを Visual Studio ツールボックスに追加しようとすると、このエラーが発生します。このエラーが発生する理由は、以前に GAC に登録された新しい再コンパイル済みアセンブリ ファイルと、GAC に登録されたアセンブリ ファイルが異なるためです。そのため、再コンパイルされた新しいアセンブリ ファイルを GAC に再度登録する必要があります。

これで、GAC に登録されたアセンブリ ファイルまたは新しく再コンパイルされたアセンブリ ファイルを Visual Studio ツールボックスに追加すると、このエラーは発生しなくなります。

考慮しなければならないもう 1 つのヒントは、AssemblyInfo.cs ファイルの次のコード行を削除またはコメントすることです。

[assembly: System.Security.AllowPartiallyTrustedCallers]

そして今、それは正しく動作します。

于 2012-10-06T09:21:31.200 に答える