私は、Visual Studio 2008でWebプロジェクトには、次の2種類の異なる承知している:Webサイトプロジェクトでビジュアルスタジオで署名付きアセンブリを参照することは可能ですか?
- サイトプロジェクト
- Webアプリケーションプロジェクト
は、Webアプリケーションプロジェクトではと署名したアセンブリを参照することができますWebアプリケーションのアセンブリも同じキーで署名されている限りです。ただし、アセンブリに署名する場所がないため、ウェブサイトプロジェクトでは機能しません。私はアセンブリがサーバー上で動的にコンパイルされているためだと思いますか?
とにかく、この署名されたアセンブリでウェブサイトのプロジェクトを行うことは可能ですか?または、このWebプロジェクトをWebアプリケーションプロジェクトに変換する必要がありますか?
編集:
次のような状況では、この問題に明確化を求めるために私を必要としています
私はVisual Studioでの私の溶液中でいくつかの他のプロジェクトによって参照されているクラスライブラリを持っています。プロジェクトの1つは、特定の外部ユーザーに展開されるWindowsアプリケーションです。アプリケーションが正しいアセンブリを使用していることを確認し、他の人がアセンブリを使用できないようにするために(私はその有効性に関する制限を認識しています)、すべてのアセンブリが署名され、ライブラリのすべてのクラスが宣言されます友人(内部)として。
ウェブサイトのプロジェクトでは、アセンブリに署名する方法がないようで、ライブラリから何かを使用しようとすると、次のメッセージが表示されます。「CLASSは「Friend」であるため、 "これは期待されている。
次の属性
は、私のクラスライブラリプロジェクトのAssemblyInfo.vbファイル内にある:<Assembly: InternalsVisibleTo("OtherProject1, PublicKey=AAA...")>
<Assembly: InternalsVisibleTo("OtherProject2, PublicKey=AAA...")>
...
私の結論:
は、ウェブサイトを変換することですこれを行うにはクリーンな方法のように見えるウェブアプリケーションに組み込むことができますが、これはサイトがかなり洗練されていて、他の議論で指摘されているように、行うにはかなり時間がかかります。今後は、Webアプリケーションを作成することがより良いアイデアであり、将来の開発のためにはるかに柔軟性があるかもしれないと思います。
私が参考に署名したアセンブリを追加しました。 (クラスライブラリである)アセンブリには何もで取得しようとしたら、私は、次のメッセージが表示されます:「それは 『友達』であるため、クラスは、この文脈で課税ではありません」。このウェブサイトの議会が署名されていないので、私は何を期待していますか?私がそれらを両方とも働かせるために、またはこれがウェブサイトプロジェクトの単なる限界であるかどうか私ができる何かがあるかどうか疑問に思う。 – Michael
うん、私はあなたのウェブサイト(それをデバッグするプリコンパイルサイトに基本的に必要はありません)から取得限られた利益は急速に痛みのこれらの種類を上回るされていることがわかります。 –