質問

DSLツールソリューションがあります。

このプロジェクトに弱い名前の参照を追加する必要があります。 DSL ToolsプロジェクトDLLは厳密な名前が付けられているため、弱い名前のDLLは使用できません。

再コンパイルできないため、DLLを厳密な名前にすることはできません。

DSLおよびDslPackageのプロジェクトプロパティに移動して、DSL ToolsプロジェクトDLLの名前を弱くし、オプション<!> quot; Sign the assembly <!> quot;のチェックを外しました。 [Sigining]タブで。

それからコンパイルします。 エラーリストには次のエラーが表示されます

"gacutil.exe" exited with code 1

VS2005の出力ウィンドウを見ると、gacutilが呼び出されていることがわかります

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"

その後、コマンドプロンプトを使用し、gacutil.exeエラーが次のように表示されます。

Z:\>"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe" -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"
Failure adding assembly to the cache: Attempt to install an assembly without a strong name

gacutil.exeが呼び出される理由と方法がわかりません。 プロジェクトとソリューションのプロパティを調べましたが、gacutil.exeを呼び出すように構成されたオプションはありません。 <!> quot; gacutil.exe <!> quot;のすべてのファイルを調べました。しかし、何も見つかりませんでした。

本当に欲しいのは、厳密な名前を付けることができない弱い名前のDLLを使用できるようにすることです。 この結果、DSL Tools DLLの名前を弱くしようとしてきましたが、できません。

これを回避する方法についてのヘルプはありますか?

事前に多くの感謝、 Lu <!>#237; s Filipe

役に立ちましたか?

解決

反射を伴うランタイムバインディングの使用は、優れたソリューションであり、機能します。それ以外に実装した他のソリューションは、別のAppDomainを起動し、そのAppDomainがアセンブリの読み込みを実行し、必要なメソッドを実行することです。このアプローチの欠点は、余分な複雑さとパフォーマンスです。 Visual Studioのプロセススペースで個別の.netアプリケーションを実際に起動する際に、彼が何をしているかを本当に知る必要があります。利点は、注意を払うと、タイプセーフがずっと得られることです。

他のヒント

上記の回答を除き、 Visual Studioのすべてのアドインには厳密な名前を付ける必要があります。

実行時にアセンブリをロードし、リフレクションを使用してメソッドを呼び出すことにより、いくつかの問題を回避できます。

よろしく、 Lu <!>#237; s

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top