没有OhNetGen.exe的输出? (无论是代码还是错误消息!)

时间:2012-06-28 03:28:24

标签: .net mono code-generation upnp

我正在尝试在iOS平台上评估OhNet的机顶盒UPnP控制点解决方案。

我想使用OhNetGen为UPnP控制点堆栈生成一些自定义代理。我无法从工具中获得任何输出,无论是生成的代码还是错误消息!

我在Win7 x64平台上,我尝试为x86和x64下载预先构建的ohNet版本,包括调试和发布版本。我也尝试更新到最新版本的WinSDK,我认为它给了我.NET 4。使用必需参数调用OhNetGen.exe时,行为与任何二进制文件相同。

ohNetGen.exe --language=c --stack=cp --xml="c:\Program Files (x86)\UPnP\Developer Tools for UPnP Technologies\Sample Service Descriptions\AV_AVTransport-0.9.xml" --output=c:\Resources\UPNP\ohNet\proxies --domain=urn:schemas-upnp-org --type=AV_AVTransport-0.9 --version=1

该命令在退出前需要一些时间,但不会输出任何内容。既没有生成代理代码也没有任何错误消息来说明失败的原因。由于我的设备上有一些自定义的UPnP服务,如果我想使用OhNet(我这样做),我必须生成代理来控制它们!

您可以提供的任何帮助或建议表示赞赏......

1 个答案:

答案 0 :(得分:1)

根据一些建议和一些试验,我确实设法使用OhNetGen生成代理。以下是步骤:

  1. 解压缩x64版本二进制文件下载。
  2. 在文件夹ohNet-Windows-x64-release-dev \ lib \ t4中,创建一个新路径OpenHome \ Net \ T4 \ Templates
  3. 将所有* .tt文件从lib \ t4复制到lib \ t4 \ OpenHome \ Net \ T4 \ Templates
  4. 将XML服务模板放到相对于OhNetGen.exe
  5. 的子目录中
  6. 为相对于OhNetGen.exe
  7. 的子目录创建代理的输出目录
  8. 在命令提示符下,将目录更改为lib \ t4
  9. 为xml和输出选项提供相对路径
  10. 您现在应该可以使用lib \ t4作为当前目录运行ohNetGen.exe。
  11. 仅供参考,这些是我使用的算法:

    ohNetGen.exe --language=c --stack=cp --xml=config\EventServices.xml --output=proxies\ --domain=schemas-upnp-org --type=EventServices --version=1
    

    编辑:如上所述进入域会导致OhNetGen在函数名称中生成带有破折号的代理。显然,这些是C(和C ++)中的无效名称。您应该以domain.org格式输入域名,OhNetGen将处理任何必要的翻译。见下文:

    ohNetGen.exe --language=c --stack=cp --xml=config\EventServices.xml --output=proxies\ --domain=upnp.org --type=EventServices --version=1
    

    希望这会有所帮助......

    道格