1

基本的に閉じられたスレッドを継続するためにこれを投稿しています:

"VS 2012 で VS 2010 プロジェクトを開こうとするとエラーが発生しました: タイプ ユニバースはアセンブリを解決できません" by user1766173

私はこの問題をより深く掘り下げ、いくつかのことを絞り込んだので、議論が再開されることを願っています.

私はVS 2012を使用しています(比較する2010はありません)。私の解決策 は"TWConsole"、金曜日には正常に機能していましたが、火曜日の時点では機能していませんでした。どちらのバージョンも正常にコンパイルおよび実行されますが、デザイナーでは、プロジェクト内の XAML ファイルをクラッシュせずに開くことはできません。ただし、同じソリューション内の別のプロジェクトから XAML を開くことは正常に機能します。この問題に関して私がグーグルで検索した結果、サードパーティのアセンブリを扱っている人がいます。

ただし、私の場合、解決できないアセンブリは私自身のものであり、ビルドによって生成されたものです。

興味深いことに、bin\Debug フォルダー内の TWConsole.exe を先週の月曜日のビルドのものに「こっそり」置き換えることで、すべてが機能することがわかりました。...つまり、ソリューションを再構築し、その exe が置き換えられるまでは、XAML デザイナーがクラッシュし始めます。

そのため、私が追加した新しいコードに関連して、何らかの形でメイン アセンブリに「感​​染」しているものがあります。それまでの間、誰かが解決策を見つけて助けに来る前に、最後に機能した解決策から始めて、問題が表面化するまで一度に 1 行ずつコードを追加して、正確な原因を突き止めます。

ありがとう

編集:問題の原因を1行のコードに絞り込むことができました:

public static bool GetFavWashPkgs(out List<WashPkg> wPkgs)

「out」キーワードを削除してからコンパイルすると、デザイナーがクラッシュする問題が解決されます。同じことが「ref」キーワードにも当てはまります。この場合もノーノーです。テストクラスとテスト関数を使用して、より基本的なテストでこの異常を再現しようと 1 時間試みましたが、役に立ちませんでした。私が報告できるのは、この「機密性の高い」関数がオーバーロードされていること、カスタム クラス WashPkg に属性 [serializable()] があること、およびこの関数が存在するクラスが静的であることだけです。List の型が WashPkg ではなく int になるように関数宣言を変更すると、問題も解決されます。したがって、この時点では、設計者がその関数宣言を好まない理由についてはまだ謎です。

4

0 に答える 0