好的,我之前已经收到过一百万次这个问题,并且之前已经回答过 100 万次 +1 次。
然而,又一次。我有 3 个项目,A、B 和 C,每个项目都是一个 DLL。每个项目都是 .Net 4.0(不是客户端构建,完整的 4.0)。项目 C 引用 A 和 B。它们被引用为项目,输出设置为在本地复制。
在 C 中,我的 .cs 文件中有两个 using 语句:
using A;
using B;
当我编译时,我收到找不到 B 的投诉。A 很好。 B 依赖于 A。
我到底该怎么办?我删除并重新添加,关闭 VS2010,重新打开它,查看 .csproj 文件。我就是无法理解。再次,第一百万次。
有人请给我足够的感觉,让我一劳永逸地了解它的来源!
是的,这可能在 StackOverflow 的某个地方得到了回答,但在我目前检查过的任何最佳答案中都没有。这些术语太笼统而无法使用,答案是“呃,添加引用”的问题太多了。我已经过了那个点。
这是我得到的错误。有3种,但根据以往的经验,最后一种才是真正的。
Error 130 'AWI.WWG.EXPMRI.MriUpload.Data.MriUpload' does not contain a definition for 'Database' and no extension method 'Database' accepting a first argument of type 'AWI.WWG.EXPMRI.MriUpload.Data.MriUpload' could be found (are you missing a using directive or an assembly reference?)
Error 114 'object' does not contain a definition for <blah>
Error 59 The type or namespace name '<blah>' could not be found (are you missing a using directive or an assembly reference?)
啊哈,我查看了警告,而不仅仅是错误,这是我所看到的:
Warning 69 The referenced project '..\..\..\..\..\..\..\Partners\integration\framework\connectors\Partners.Connectors.Base\Partners.Connectors.Base\Partners.Connectors.Base.2010.csproj' does not exist. AWI.WWG.EXPMRI.MriUpload.Objects
在这种情况下,.csproj 文件是“B”。即使我删除并重新添加项目引用,我也得到了这个。但感觉我越来越近了!
嗯,我刚找到另一个 DLL,称它为“D”,“A”引用了它。当我将它添加到项目中时,我开始收到投诉:
----------------
The Add Reference Dialog could not be shown due to the error:
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
----------------
这可能是相关的,还是只是另一种干扰?
好的,我发现了问题,虽然我不明白。
当我通过 IDE 添加引用时,它会将此添加到“C”的 csproj 文件中:
<ProjectReference Include="..\..\..\..\..\..\..\Partners\integration\framework\connectors\Partners.Connectors.Base\Partners.Connectors.Base\Partners.Connectors.Base.2010.csproj">
这不编译,它警告它找不到引用的项目,然后所有这些错误都会发生。但后来我将 ProjectReference 更改为以下内容:
<ProjectReference Include="C:\...\Partners.Connectors.Base.2010.csproj">
...而且效果很好。请注意,这些路径都不接近 256 个字符。完全合格的只有 135 个字符。但也许 IDE 正在对路径进行一些愚蠢的修饰。
最佳答案
解决方案与 Windows 中的文件路径限制有关,它们是 IDE 将相对路径转换为完整路径的方式,如 this blog 中所述。 .
直接的解决方案是手动编辑 csproj 文件以使用绝对路径。在重新添加引用之前,绝对路径将有效。有一天我可能会缩短我的文件夹,但这不是目前的首要任务。
如果您怀疑自己遇到了这个问题,请查看编译器发出的警告消息。我经常自己关闭这些,只查看错误。但是关于“引用的项目不存在”的警告是为我解决这个问题的线索。
万一其他链接消失了,这里是 MS 文章的链接。 http://support.microsoft.com/kb/2516078
值得注意的是,同样的错误会出现在各种问题中,例如客户端框架定位问题,并在引用加载失败时记录为警告。大概引用错误只是一个警告,因为如果实际上不需要引用,那也没关系。
关于c# - 类型或命名空间 <blah> 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6558831/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串
我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain