6

さまざまな理由から、プロジェクトで強力な名前の付いた(署名された)アセンブリを使用したくありません。ただし、プロジェクトの1つは、SharePoint Webパーツによって参照されているため、署名する必要があります。

このアセンブリに署名することは可能ですが、他のプロジェクトから参照する場合は、強力でない参照を使用して署名してください。これにより、コードの残りの部分で署名されていないアセンブリを使用できるという利点が得られますが、SharePointでロードすることもできます。

4

3 に答える 3

3

これを行う最も簡単な方法は、おそらく 2 つの異なるプロジェクト構成を持つことです。1 つは厳密な名前のアセンブリをビルドし、もう 1 つはビルドしません。明らかに、アセンブリをビルドして参照する方法に注意する必要がありますが、それは競合する要件を持つ領域に当てはまります。

于 2010-03-22T11:32:27.997 に答える
1

強い名前を付けずにプロジェクトを構築し続けてください。SharePoint にデプロイする必要がある場合は、ビルド後にツールを使用して署名します。まさにそれを行うツールは次のとおりです。

http://signer.codeplex.com/Wikipage

手動で行うこともできますが、それは PITA です。

http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

于 2010-04-08T00:17:26.597 に答える
0

これはOPですが、私はOpenIDログインを持っていないので、私としては返信できないと思います.

両方の応答をありがとう。どちらでもうまくいったと思いますが、状況はもう少し複雑であることが判明しました。他の誰かが興味を持っている場合に備えて、ここに調査結果を記録しました。

実際、sharepoint はアセンブリ A を参照し、アセンブリ A はアセンブリ B を参照します。

アセンブリ A と B の両方を署名なしで問題なくビルドできますが、A に署名する場合は、アセンブリ B の署名済みバージョンを参照するようにプロジェクト自体を変更する必要があります。

これを行う方法はあったかもしれませんが、DLL の競合の可能性と、同じ名前の DLL の異なるセットを持つことによる構成制御の問題は、手間をかける価値がないと判断しました。

そのため、すべてのビルドでこれらの両方のアセンブリに署名し、必要に応じてコードを別のアセンブリにリファクタリングして、署名済みのアセンブリに最小限のコードのみが含まれるようにして、変更される可能性を低くすることにしました。

ティム

于 2010-04-08T11:00:32.637 に答える