适用于标准.NET项目的Windows Mobile DLL

时间:2009-01-26 13:24:47

标签: .net windows-mobile

快速提问(我希望),如何在标准网络项目中包含一个窗口6类库dll?我似乎只能在早期版本的Windows移动项目中通过VS添加引用,但不能在版本6中添加引用。从我读到的内容应该是可能的,只要不使用CE特定的库。

任何帮助表示赞赏。

谢谢,克里斯。

编辑:

不是我发现的,我做了以下事情:

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

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

3)尝试将mobile 6 lib包含在标准版本中

我得到:

“无法添加引用”。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

http://social.msdn.microsoft.com/Forums/en-US/vssmartdevicesvbcs/thread/c0cae024-a9a2-43bd-9d37-69bc9a9338c7/

事实证明,VB.NET项目在引用VB.NET中创建的CF项目时遇到了麻烦。一切都很好玩。

答案 2 :(得分:0)

根据我的经验,你只是 cant ,真的很糟糕!编译一次,到处运行。

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

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

    完成初始“端口”后,事情就会很快完成。 CF项目应该有一个调试符号(POCKETPC或SMARTPHONE IIRC),但我建议您添加MOBILE,以便在PocketPC和SmartPhone项目之间共享CF代码。

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

    应该可以使用MSBUILD任务自动执行此操作。但遗憾的是,通过在构建时生成csproj文件,可以在代码时丢失智能感知。