无法在Visual Studio 2012中加载文件或程序集,C#
我正在Windows 7上的Visual Studio 2012上编写C#代码。我的解决方案包含几个项目 我最近在我的解决方案中添加了一个新项目,并在解决方案中的其他两个项目(其中一个是启动项目)的引用中添加了这个新项目的dll。新项目本身引用了我的解决方案中未包含的其他几个项目 在解决方案中构建项目可以正常工作,但当我尝试运行程序(在调试或发行版中)时,会出现错误。以下是错误:无法在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
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文件一起复制,从而允许您运行项目。