0

Windows CE / CF ソリューション (exe およびクラス ライブラリ/DLL) を Visual Studio 2003 / .NET 1.1 から Visual Studio 2008 / .NET 3.5 に移植しています。

コードの最後の行は次のとおりです。

private bool ConnectToServer( ref Util.thisEnv tEnv )
{
bool bRet = false;

Util.CloseAll();
do
{
    Thread.Sleep( 100 );
} while( Util.dW_Running );

try
{
    tEnv.siteNumber      = siteNumber;
    tEnv.opFlag          = 0;
    tEnv.pptStream       = null;

...コンパイル時エラーをスローしています。つまり、次のとおりです。

タイプ 'System.Net.Sockets.NetworkStream' は、参照されていないアセンブリで定義されています。アセンブリへの参照を追加する必要があります 'System, Version=2.0.0.0

しかし、このプロジェクトでそのバージョンのシステム アセンブリを参照しています。

ランタイム バージョンとバージョンは両方とも 2.0.0.0 パスは C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\System.dll

もう1 つのプロジェクト (クラス ライブラリ/DLL) もシステムを参照しますが、ランタイム バージョンが v2.0.50727 で、パスが C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll であるというわずかな違いがあります。

「cousing」プロジェクト間のシステム アセンブリのこの不一致が、この問題の原因になる可能性はありますか? そうではないように思えますが、なぜこの一見誤ったエラーが発生しているのかわかりません...???

4

1 に答える 1

1

それは「わずかな」違い以上のものです。1 つの参照はコンパクト フレームワークの参照であり、もう 1 つはデスクトップの参照です。"C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll" への参照を削除する必要があります。削除しないと、完全なフレームワークをデバイスにプッシュしようとして、実行されません。

于 2013-10-01T22:26:18.763 に答える