2013-08-27 2 views
3

Windows 7의 Visual Studio 2012에서 C# 코드를 작업하고 있습니다. 솔루션에 여러 프로젝트가 포함되어 있습니다. Visual Studio 2012에서 파일 또는 어셈블리를로드 할 수 없습니다. C#

나는 최근에 내 솔루션에 새 프로젝트를 추가하고합니다 (인 시작 프로젝트 중 하나) 솔루션 2 개 다른 프로젝트의 참고 문헌이 새 프로젝트의 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는 최근 내 솔루션에 추가 한 프로젝트입니다. ABCD.dll은 NewProject에서 참조되지만 프로젝트 ABCD는 솔루션 자체의 일부가 아닙니다. 그러나,/사용자/MyName로/문서/비주얼 스튜디오 2012/프로젝트/MyProgram/분석/빈/디버그/

: /// C :이 오류에

은, AppBase 파일이라고 말한다 내가 NewProject의 ABCD 기준에서 보면, 그것은 말한다 : 오류에 기록 된 AppBase 주소하지에서 실제로

Assembly ABCD 
    C:\Users\MyName\Documents\Visual Studio 2012\Projects\np\bin\ABCD.dll 

, ABCD.dll. 그러나 나는 거기에 있다고 말한 적이 없으며 이것이 어디에서 왔는지 이해하지 못합니다.

오류가 나에게주는 AppBase 주소에 ABCD.dll을 넣으려고했습니다. 그러나 때마다 내가 NewProject과 (당시) 내 시작 프로젝트 분석을 재 구축 ABCD.dll는 C에서 사라 :/사용자/MyName로/문서/비주얼 스튜디오 2012/프로젝트/MyProgram/분석/빈/디버그/

내가 꽤입니다 Visual Studio를 처음 사용합니다. 나는 새 프로젝트를 추가 할 때 아마도 뭔가 잘못된 것을했을지 모르지만 나는 그것이 무엇인지 이해할 수 없다. 여러분 중 한 분이이 문제를 해결하는 방법에 관한 아이디어가 있다면 주저하지 말고 이야기하십시오!

답변

4

프로젝트간에 참조가 필요한 경우 DLL 파일을 참조하는 대신 "프로젝트 참조"를 추가하십시오. 당신이 정말로 다음 DLL 파일을 참조해야하는 경우 :

1) 프로젝트에 "라이브러리"(또는 무언가) 폴더를 만듭니다.

2)이 폴더에 참조 된 DLL을 복사하십시오.

3) VS에서 "기존 항목 추가"를 사용하여 DLL 파일을 프로젝트에 추가하십시오. 파일 선택 대화 상자에서 파일 필터를 *.*으로 변경하여 DLL을 표시해야합니다.

4)이 DLL 노드의 속성에서 빌드 옵션에서 "더 새로운 경우 복사"를 선택하십시오.

5) "Libraries"디렉토리의 DLL 파일에 대한 참조를 추가하십시오. 프로젝트 사이

참조 때문에로, 물론 더 나은 당신의 그 (것)들에게 당신의 참조가 자동으로 업데이트됩니다를 다시 빌드합니다. 그렇지 않으면 참조를 업데이트 할 때마다 DLL 파일을 새 파일로 바꿔야합니다.

+0

Subversion을 이유로 NP.dll이있는 NewProject를 참조합니다. 죄송합니다. Andrew와 귀하의 답변이 명확하지 않습니다.당신은 내가 (그것은 나에게 아무런 의미가 없기 때문에 아마 오해)해야한다고 말했다 : 1) 내가 ABCD.dll 및 NewProject에 필요한 다른 DLL을 복사하는 프로젝트 NewProject 2)에 빈 "라이브러리"폴더를 만듭니다. 3)? 어떤 DLL 또는 프로젝트에 대해 이야기하고 있는지 확실하지 않습니다. 어쨌든 "기존 항목 추가"를 사용하여 DLL 파일을 추가 할 수 없습니다 (dll 파일이 표시되지 않음). 내가 뭘했는지 NewProject> 참조 추가> ABCD.dll 4) 파일 속성에는 있지만 더 이상 참조 속성에는 나타나지 않지만 참조 속성에는 나타나지 않습니다. – Lez

+0

"기존 항목 추가"를 사용하여 DLL을 "라이브러리"폴더에 추가합니다. 계획. DLL이 나타나려면 오른쪽 하단의 필터를 *. * 또는 * .dll로 변경하십시오 (기본적으로 추가 할 코드 파일 만 찾습니다). 이 후 "새 옵션 복사"를 선택할 수 있습니다. 이렇게하면 DLL이 exe 파일과 함께 복사되어 프로젝트를 실행할 수 있습니다. – BartoszKP

+0

네, 효과가있었습니다. 고맙습니다. – Lez

관련 문제