一周前我开始使用Thrift。我从SVN获得了最新的源代码并构建了C#库(Thrift.dll)。我使用该库来构建TCP客户端/服务器的原型,其中包含我的团队将使用的数据类型。这没有问题,我只是按照SVN回购中的示例代码。
昨天,我想通过HTTP运行相同的测试。我在网上搜索了一些,发现从我上周获得代码到昨天补丁“THRIFT-322”https://issues.apache.org/jira/browse/THRIFT-322
适用于行李箱。所以我从SVN更新了我的thrift源并看到了新的THttpHandler类。我重建了Thrift.dll,所以我可以使用THttpHandler类但是现在每当我引用新的dll Visual Studio 2010在编译时都会给我一个错误:“找不到类型或命名空间”Thrift“(你是否错过了使用指令或汇编参考?)“。当我用旧的Thrift.dll替换引用时,我没有收到此错误。
我无法弄清楚我做错了什么,我只是从SVN源重新编译了Thrift.dll,我无法再链接到Thrift.dll。当我第一次添加引用时,似乎它会正常工作。 Visual Studio为我提供了正确的智能感知等。一旦我尝试构建它就像不再引用Thrift.dll一样。有什么想法吗?
我还将此提交给了Thrift用户邮件列表,我只是觉得这可能更为通用,而且有人可以提供帮助。
谢谢, -Sean
答案 0 :(得分:20)
由于您提到使用VS 2010 ...我在编译.NET 4.0项目时有时会看到此错误/行为,并且项目的目标框架设置为“.NET Framework 4.0 Client Profile”而不是“ .NET Framework 4.0“。所以你可能想检查一下,看看它是否有帮助。
答案 1 :(得分:2)
我有一个类似的问题,我不得不从'.NET Framework 4.0 Client Profile'切换到'.NET Framework 4.0',它之所以有效,是因为引用的dll是使用'.NET Framework 4.0'编译的
答案 2 :(得分:0)
我的一个建议是检查扩展名为E.g的文件是否为'refresh'。 Thrift.dll.refresh或类似的东西。通常在添加引用时添加此文件。尝试删除此文件,替换dll并尝试构建并再次运行。