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

另一个项目(类库/DLL)也引用了 System,运行时版本是 v2.0.50727 和路径是 C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll 略有不同

“cousing”项目之间系统程序集的这种不匹配是否会成为这个问题的根源?似乎不是这样,但我不知道为什么会出现这个看似荒谬的错误......???

4

1 回答 1

1

这不仅仅是“轻微”的差异。一个参考是 Compact Framework 参考,另一个是桌面参考。必须删除对“C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll”的引用,否则它将尝试将完整的框架推送到您的设备并且无论如何它都不会运行。

于 2013-10-01T22:26:18.763 回答