用于标准.NET项目的Windows Mobile dll

用于标准.NET项目的Windows Mobile dll,.net,windows-mobile,.net,Windows Mobile,快速问题(我希望如此),如何在标准网络项目中包含Windows6类库dll?在WindowsMobile项目的早期版本中,我似乎可以通过VS添加一个参考,但在版本6中则不行。从我所读到的内容来看,只要没有使用CE特定的库,就应该是可能的 谢谢你的帮助 谢谢,克里斯 编辑: 不是我所发现的,我做了以下工作: 1) 创建新的windows mobile 6类库(CF.NET dll) 2) 创建新的标准类库(标准.NET dll) 3) 尝试将mobile6lib包含到标准lib中 我得到: “无法

快速问题(我希望如此),如何在标准网络项目中包含Windows6类库dll?在WindowsMobile项目的早期版本中,我似乎可以通过VS添加一个参考,但在版本6中则不行。从我所读到的内容来看,只要没有使用CE特定的库,就应该是可能的

谢谢你的帮助

谢谢,克里斯

编辑:

不是我所发现的,我做了以下工作:

1) 创建新的windows mobile 6类库(CF.NET dll)

2) 创建新的标准类库(标准.NET dll)

3) 尝试将mobile6lib包含到标准lib中

我得到:


“无法添加对的引用”。

如果这是CF.NET dll,则可以将其添加为引用(无论版本如何)。如果它是本机代码库,则不能。您需要围绕此dll创建一个.NET包装器(使用P/Invoke)并将此dll添加到项目中。您需要注意本机dll在运行时是否存在。

根据我的经验,您根本不能,这真的很糟糕!!!编译一次,到处运行就这样了

无论如何,我找到的一个解决方案是:

  • 在CF类库或Win32库中编写项目代码,无论是哪一个(Project1)
  • 添加其他类型的新项目(Project2)
  • 复制Project2下的文件夹结构,使其镜像Project1
  • 右键单击项目2并选择添加-->现有项
  • 导航到Project1的文件夹并选择您感兴趣的所有文件(请记住有选择地避免.designer.cs文件,例如.resx的.designer.cs)
  • 在添加按钮(添加|V)的右侧,您将看到一个向下的箭头,单击它
  • 添加为链接
  • 对Project2下的所有文件夹重复相同的过程
  • 关键是,即使现在有两个程序集,对cs文件的任何更改都会反映在所有程序集中。这就是XNA GameStudio的工作方式,也是我过去如何应对手机CF的

    一旦你完成了最初的“端口”,事情就会进展得很快。CF项目应该有一个调试符号(POCKETPC或SMARTPHONE IIRC),但我建议您添加MOBILE,以便您可以在POCKETPC和SMARTPHONE项目之间共享CF代码

    我正在考虑写一个工具来镜像项目,如果你有兴趣在评论中这样说,我会抽出时间来做(现在我不做任何CF的东西)


    还可以通过MSBUILD任务自动执行此操作。但不幸的是,通过在构建时生成csproj文件,人们在编码时失去了intellisense。

    我在这里找到了我自己问题的答案:


    事实证明,VB.NET项目在引用在VB.NET中创建的CF项目时遇到问题。一切都很有趣

    它不是本机代码,而是CF.NET dll。请参阅编辑以了解错误。您使用的是哪个版本的Visual Studio?“标准类库”是什么意思?这是不是一个不适合CF的库?VS2008。“标准类库”的目标是完整的.NET框架,而不是紧凑的框架。这似乎不适合我,因为在编译文件之前,它们只是文本文件。这应该是一个切换编译器并允许它的问题,它应该确定我导入了哪个“System.Data”(或任何引用)(full或CE)。