2009-01-26 48 views
0

快速问题(我希望),如何在标准网络项目中包含窗口6类库dll?我似乎只能在早期版本的Windows Mobile项目中通过VS添加引用,但不能与版本6一起添加引用。从我读到的内容来看,只要没有使用CE特定的库,就应该可以。标准.NET项目的Windows Mobile dll

任何帮助表示赞赏。

谢谢,克里斯。

编辑:

不是我发现,我已经做了以下内容:

1)创建新的Windows Mobile 6类库(CF .NET的DLL)

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

3)尝试包括移动6 lib添加到标准一个

在这里,我得到:

“对不能添加的引用”。

+0

您使用的是哪个版本的Visual Studio? “标准类库”是什么意思?它不是CF的图书馆吗? – kgiannakakis 2009-01-26 14:06:38

+0

VS2008。 “标准类库”是针对完整的.NET框架,没有紧凑的框架。 – Owen 2009-01-26 14:59:47

回答

1

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

+0

它不是本地代码,它是一个CF .NET dll。请参阅编辑错误。 – Owen 2009-01-26 13:59:32

0

根据我的经验,你只需cant,这真的很烂!编译一次就到处运行。

在任何情况下,一个解决方案,我发现是:

  1. 代码你在CF类库或一个Win32库项目,它并不重要(PROJECT1)。
  2. 添加另一种类型的新项目(Project2)。
  3. 复制Project2下的文件夹结构,使其镜像Project1。
  4. 右键单击Project2并选择添加 - >现有项目...
  5. 导航到Project1的文件夹并选择您感兴趣的所有文件(请记住选择性地避免.designer.cs文件,例如.designer.cs for .resx)。
  6. 在添加按钮的右侧(添加| V),您将看到一个向下的箭头,点击它。
  7. 添加为链接。
  8. 为Project2下的所有文件夹重复相同的过程。

问题是,即使您现在有两个程序集,对cs文件的任何更改都会反映在所有程序集中。这就是XNA GameStudio所做的事情,以及我过去如何与手机的CF搭档。

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

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

也应该可以使用MSBUILD任务自动执行此操作。但不幸的是,通过在构建时生成一个csproj文件,在编码时就会失去智能感知。

相关问题