4

現在、Visual Studio 2008 の WiX 3.5 カスタム アクション プロジェクトを WiX 3.7 および Visual Studio 2012 に変換しようとしていますが、次の例外が発生します。

型または名前空間名 'MyNamespace' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

dll は確実に参照されており、Visual Studio 2012 は名前空間を問題なく参照できます。名前空間の下にあるものはすべて Intellisense で表示されますが、ビルドするとこの例外が発生します。

ここで何が起こっているか知っている人はいますか?

追加情報:

私が参照している名前空間は .Net 2.0 ライブラリであり、カスタム アクション プロジェクトは .Net 2.0 プロジェクトです。

編集:

さらに調査した結果、次の警告が表示されました。これが問題の原因であると推測しています。

プライマリ リファレンス "MyNamespace、Version=8.5.1.20、Culture=neutral、PublicKeyToken=f593502af6ee46ae、processorArchitecture=MSIL" は、.NET Framework アセンブリ "mscorlib、Version=4.0.0.0、Culture =neutral, PublicKeyToken=b77a5c561934e089" これは、現在のターゲット フレームワークのバージョン "2.0.0.0" よりも高いバージョン "4.0.0.0" を持っています。

これが 2.0 プロジェクトであるのに、mscorelib 4.0 を使用しようとするのはなぜですか?

4

3 に答える 3

9

そのため、参照されている dll は、.Net 2.0 フレームワークを対象とするようにコンパイルされているときに、4.0 コンパイラでコンパイルされていたことが判明しました。プロジェクトを 3.5 コンパイラでコンパイルするように切り替えると、問題は解決しました。

于 2013-07-31T12:57:50.017 に答える
0

これはまったく関係ないかもしれませんが、昨日同様の問題がありました。クラス ファイル (.cs) をあるソリューションから別のソリューションに誤ってコピーしてしまいました。明らかに、他のソリューションへの参照を追加していませんでした。

于 2015-04-26T11:47:48.433 に答える
0

私たちの場合、参照された dll は .Net 4.0 をターゲットにしていましたが、.Net 4.5.2 dll への独自の参照がありました。参照された 4.0 フレームワーク ターゲットにより、処理には 4.5 または 4.5.1 で十分であると思われましたが、そうではありませんでした。dllとそのすべての参照を処理するには、参照元プロジェクトが 4.5.2 である必要がありました。

これは明らかに dll メーカー側のエラーです。

于 2016-01-12T01:43:49.017 に答える