无法在Visual Studio 2012中加载文件或程序集,C#

无法在Visual Studio 2012中加载文件或程序集,C#,c#,visual-studio-2012,filenotfoundexception,C#,Visual Studio 2012,Filenotfoundexception,我正在Windows 7上的Visual Studio 2012上编写C#代码。我的解决方案包含几个项目 我最近在我的解决方案中添加了一个新项目,并在解决方案中的其他两个项目(其中一个是启动项目)的引用中添加了这个新项目的dll。新项目本身引用了我的解决方案中未包含的其他几个项目 在解决方案中构建项目可以正常工作,但当我尝试运行程序(在调试或发行版中)时,会出现错误。以下是错误: System.IO.FileNotFoundException was caught HResult=-2147

我正在Windows 7上的Visual Studio 2012上编写C#代码。我的解决方案包含几个项目

我最近在我的解决方案中添加了一个新项目,并在解决方案中的其他两个项目(其中一个是启动项目)的引用中添加了这个新项目的dll。新项目本身引用了我的解决方案中未包含的其他几个项目

在解决方案中构建项目可以正常工作,但当我尝试运行程序(在调试或发行版中)时,会出现错误。以下是错误:

System.IO.FileNotFoundException was caught
  HResult=-2147024894
  Message=Could not load file or assembly 'ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
  Source=NP
  FileName=ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  FusionLog==== Pre-bind state information ===
LOG: User = MyCompany\MyName
LOG: DisplayName = ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : NP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\MyName\Documents\Visual Studio 2012\Projects\MyProgram\Analysis\bin\Debug\Analysis.vshost.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD.DLL.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD/ABCD.DLL.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD.EXE.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD/ABCD.EXE.

  StackTrace:
       at NewProject.DATA.SetType(NP np, String code, OrderType orderT, MODEL MODELv)
       at NewProject.DATA.SetData(NP np, String no, String type, String law, String time, OrderType orderT, MODEL MODELv)
  InnerException:
分析是我的创业项目。 NewProject是我最近添加到解决方案中的项目。 在NewProject中引用了ABCD.dll,但项目ABCD不是解决方案本身的一部分

在这个错误中,据说AppBase是file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/

但是,当我查看NewProject中的ABCD参考时,它会说:

Assembly ABCD
    C:\Users\MyName\Documents\Visual Studio 2012\Projects\np\bin\ABCD.dll
实际上,ABCD.dll中没有在AppBase地址中写入错误。但我从没说过它在那里,我不明白这是从哪里来的

我试图将ABCD.dll放入AppBase地址,但出现错误。但每次我重建新项目和(然后)启动项目分析时,ABCD.dll都会从C:/Users/MyName/Documents/visualstudio 2012/Projects/MyProgram/Analysis/bin/Debug中消失/


我对visualstudio很陌生。我可能在添加新项目时出错了,但我不明白它是什么。如果你们当中有人对解决这个问题的方法有什么想法,请不要犹豫说出来

如果需要项目之间的引用,请添加“项目引用”,而不是引用DLL文件。如果确实需要引用DLL文件,则:

1) 在项目中创建“库”(或其他)文件夹

2) 将引用的DLL复制到此文件夹中

3) 在VS中,使用“添加现有项”将DLL文件添加到项目中。在文件选择对话框中,您需要将文件过滤器更改为
*.*
,以便显示DLL

4) 在此DLL节点的属性下,在生成选项中选择“如果较新,则复制”

5) 在“库”目录中添加对DLL文件的引用


项目之间的引用当然更好,因为重建它们时,引用会自动更新。否则,每次要更新引用时,都需要用新的DLL文件替换DLL文件。

出于subversion原因,我使用NP.DLL引用了NewProject。对不起,Andrew和您的答案不清楚。你说我应该(我可能误解了,因为这对我来说毫无意义):1)在项目NewProject中创建空的“Libraries”文件夹2)在其中复制ABCD.dll和新项目所需的其他dll。3)? 不确定您正在谈论的是什么DLL或项目。无论如何,我不能使用“添加现有项”来添加DLL文件(DLL文件不会出现)。我所做的是新建项目>添加引用>duo.dll 4)“如果更新,复制”选项出现在文件属性中,但不在引用属性中使用“添加现有项”将dll添加到项目中的文件夹“库”中。要显示DLL,请将右下角的过滤器更改为。或*.dll(默认情况下,它只查找要添加的代码文件)。在此之后,您将能够选择“如果更新,则复制”选项。通过这种方式,DLL将与exe文件一起复制,从而允许您运行项目。