无法在C#控制台应用程序中使用外部引用

时间:2010-12-31 19:54:01

标签: c# visual-studio-2010 assemblies reference

我已经尝试了下面的所有建议,但仍然没有快乐。

我现在正在尝试一个控制台应用程序,让我解释一下我正在做什么。

  1. 我在VS 2010中创建了一个新的控制台项目
  2. 我添加了许多不属于我的引用(dll),例如Castle.Winsor和N2 CMS dll
  3. 在控制台应用程序中我可以添加使用语句指示我在引用的DLL中使用名称空间
  4. 我开始编写代码。
  5. 一旦我编译了所有使用引用的DLL的代码,立即抱怨“找不到类型或命名空间名称”(你是否缺少using指令或程序集引用?)“
  6. 我已经尝试将dll设置为始终复制到本地,我已将DLL复制到同一目录中,我尝试通过项目添加引用并添加对DLL本身的引用

    我不会在Web应用程序项目或ASP.net项目中遇到这个问题,它们总能正常工作,只能编译为EXE,如控制台应用程序或Windows服务。

    必须有一些我不知道的东西,否则我现在就可以使用它了。

5 个答案:

答案 0 :(得分:37)

将项目目标更改为非客户端配置文件目标。右键单击Project并选择Properties,您应该看到Framework版本列表。在使用VS2010时,默认情况下创建的Console项目是.NET Framework 4.0 Client Profile,将其更改为.NET Framework 4.0。

答案 1 :(得分:2)

检查引用的程序集的Copy Local是否设置为true

答案 2 :(得分:0)

首先,关于你的问题,很难确切地知道你做错了什么,但是从你在程序集名称中使用下划线(可能在命名空间和类型名称中)的事实,它建议你对.NET世界来说,这是一个新手。

这表明您通过浏览添加对解决方案中其他项目的引用,而不是添加项目参考。添加引用时,必须选择“项目”选项卡,而不是浏览程序集。

即使您不相信这是问题,也请删除所有引用并重新添加项目引用以确保无误。假设,驴等。

完成后,我强烈建议从类型,命名空间和程序集中删除所有下划线。您可能也想阅读框架设计指南。

答案 3 :(得分:0)

在记事本中打开.Proj(Windows服务项目文件)文件,检查您的程序集位置(data_object)是否与您指向的位置相同。

当你在记事本中打开.Proj文件时,你可以检查,

项目参考,

        <ProjectReference Include="C:\StackOverflow\StackOverflow.csproj">

如果你给dll或exe refrence那么

 <Reference Include="StackOverflow, Version=1.0.0.0, Culture=neutral,       processorArchitecture=x86">
  <SpecificVersion>False</SpecificVersion>
  <ExecutableExtension>.exe</ExecutableExtension>
  <HintPath>C:\StackOverflow\bin\Debug\StackOverflow.exe</HintPath>
</Reference>

我建议您提供包含驱动器名称的确切位置,如上例所示。

您可以尝试其他选项,

 1. Clean and rebuild
 2. Add Project reference if you already tried dll reference
 3. Check whether the folder (referred assembly location) is Read Only then remove it. 

答案 4 :(得分:0)

在VS 2019中,我在一个解决方案文件中有两个项目,一个C ++和另一个C#控制台。尝试通过“添加引用”添加dll引用时,无法在“参考管理器”窗口中看到“浏览”按钮来选择dll文件。

但是当我在解决方案内部仅创建C#Console应用程序时,我可以添加dll引用。