C# Visual Studio在尝试生成时丢失引用

C# Visual Studio在尝试生成时丢失引用,c#,thrift,C#,Thrift,我大约一周前开始使用节俭。我从SVN获得了最新的源代码,并构建了C#库(Thrift.dll)。我使用该库对一个TCP客户机/服务器进行了原型化,并使用了我的团队将要使用的数据类型。这没有问题,我只是遵循了SVN repo中的示例代码 昨天,我想通过HTTP运行相同的测试。我在网上搜索了一些,发现从上周我得到代码到昨天的补丁“THRIFT-322” 在树干上涂了一层。所以我从SVN更新了我的旧货源,看到了新的THttpHandler类。我重建了Thrift.dll以便可以使用THttpHandl

我大约一周前开始使用节俭。我从SVN获得了最新的源代码,并构建了C#库(Thrift.dll)。我使用该库对一个TCP客户机/服务器进行了原型化,并使用了我的团队将要使用的数据类型。这没有问题,我只是遵循了SVN repo中的示例代码

昨天,我想通过HTTP运行相同的测试。我在网上搜索了一些,发现从上周我得到代码到昨天的补丁“THRIFT-322”

在树干上涂了一层。所以我从SVN更新了我的旧货源,看到了新的THttpHandler类。我重建了Thrift.dll以便可以使用THttpHandler类,但现在每当我引用新的dll时,Visual Studio 2010在编译时都会给我一个错误:“找不到类型或命名空间“Thrift”(是否缺少using指令或程序集引用?)。当我用我拥有的旧Thrift.dll替换引用时,我没有得到这个错误

我不知道我做错了什么,我只是从SVN源代码重新编译了Thrift.dll,我无法再链接到Thrift.dll。当我第一次添加引用时,它似乎会很好地工作。Visual Studio为我提供了正确的intellisense等。一旦我尝试构建它,就好像不再有对Thrift.dll的引用。有什么想法吗

我还将此提交给了Thrift用户的邮件列表,我只是觉得这可能更一般,这里的人可能会提供帮助

谢谢,
-Sean

我的一个建议是检查扩展名中是否有“refresh”的文件,例如Thrift.dll.refresh或类似文件。此文件通常在添加引用时添加。尝试删除此文件,替换dll,然后尝试内置并再次运行。

因为您提到使用VS 2010。。。在编译.NET 4.0项目时,我有时会看到这种错误/行为,并且该项目的目标框架设置为“.NET framework 4.0客户端配置文件”,而不是“.NET framework 4.0”。因此,您可能需要检查一下,看看是否有帮助。

我遇到了一个类似的问题,我不得不从“.NET Framework 4.0客户端配置文件”切换到“.NET Framework 4.0”,这很有效,因为引用的dll是使用“.NET Framework 4.0”编译的。

谢谢您的建议。很遗憾,我没有看到任何刷新文件。我刚刚用一行代码启动了一个完整的新项目,并添加了对新Thrift.dll的引用,但遇到了相同的问题:-/谢谢!成功了。奇怪的是,对于旧版本的Thrift.dll,它被设置为客户端配置文件,而不是新版本。我将不得不仔细阅读差异是什么。看起来这是因为刚刚添加了()对System.Web的额外依赖。非常感谢。这让我发疯了!谢谢你!!我快疯了!!顺便说一句,如果有人想知道为什么这个“功能”实际上存在,那就是如果你想构建一个只使用标准.Net库的应用程序。但是,由于安装完整的.Net框架绝对没有问题,我认为这没有用。尤其是因为它是默认选项!万一有人一直在考虑如何更改客户机配置文件,我会在何时项目属性->编译->高级编译选项->.Net Framework版本这对我很有帮助,因为我的项目中引用的dll使用的是.Net Framework 4.5.1,而我的项目是4.5。。。当我将其升级到4.5.1时,找到了程序集引用,并且我的项目构建成功地复制了