私は、Visual Studio 2008 で次の 2 種類の Web プロジェクトを認識しています。
- ウェブサイト プロジェクト
- Web アプリケーション プロジェクト
Web アプリケーション プロジェクトは、Web アプリケーションのアセンブリも同じキーで署名されている限り、署名されたアセンブリを参照できます。ただし、アセンブリに署名する場所がないため、これは Web サイト プロジェクトでは機能しません。これは、アセンブリがサーバー上で動的にコンパイルされるためだと思いますか?
とにかく、この署名されたアセンブリで Web サイト プロジェクトを動作させることは可能ですか? または、この Web サイト プロジェクトを Web アプリケーション プロジェクトに変換する必要がありますか?
編集:
以下の状況により、この件について説明を求める必要がありました。
Visual Studio のソリューションで、他のいくつかのプロジェクトから参照されているクラス ライブラリがあります。プロジェクトの 1 つは、特定の外部ユーザーに展開される Windows アプリケーションです。アプリケーションが正しいアセンブリを使用していることを確認し、他のユーザーがアセンブリを使用できないようにするために (有効性に関する制限があることは承知しています)、すべてのアセンブリが署名され、ライブラリ内のすべてのクラスが宣言されています。フレンド (内部) として。
Web サイト プロジェクトにはアセンブリに署名する方法がないようで、ライブラリから何かを使用しようとすると、次のメッセージが表示されます。期待される。
次の属性は、クラス ライブラリ プロジェクトの AssemblyInfo.vb ファイル内にあります。
<Assembly: InternalsVisibleTo("OtherProject1, PublicKey=AAA...")>
<Assembly: InternalsVisibleTo("OtherProject2, PublicKey=AAA...")>
...
私の結論:
これを行う最もクリーンな方法は、Web サイトを Web アプリケーションに変換することのように見えますが、私たちのサイトはすでにかなり肉付けされており、他の議論で指摘されているように、これを行うには少し時間がかかります。行う。今後は、最初に Web アプリケーションを作成する方がより良いアイデアであり、将来の開発に対してはるかに柔軟だったと思います。