2013-10-04 1 views
0

내가 프로젝트 A를 개발 중이며 이미 프로젝트 B의 출력을 exe 파일로 가지고 있습니다. 프로젝트에서 B 출력 (Say - B.exe)을 참조로 사용하고 있습니다.다른 exe (참조 exe)에서 프로젝트의 폼을 열면 객체 참조 오류가 발생합니다. C#

내가 직접 A에 B.exe의 형태를 사용할 필요가

예 :

여기
Namespace A 
{ 
    B.Reports.TaxReport reportForm = new B.Reports.TaxReport(); 
    reportForm.ShowDialog(); 
} 

문제이며, 모든 데이터베이스 페칭으로 올바르게 새 EXE 파일 내부의 폼이로드. 그러나 사용자가 추가/업데이트/데이터 가져 오기와 같은 작업을 수행하는 경우 현재 exe는 '개체 참조가 개체의 인스턴스로 설정되지 않았습니다'라는 예외를 throw합니다.

어떻게이 문제를 해결할 수 있습니까? 아니요, 참조 EXE에서 현재 개발중인 프로젝트로 양식을 여는 데 도움이 될 수있는 해결 방법이 있습니까?

답변

0

.exe을 프로젝트 참조로 추가하지 마십시오. 가장 좋은 방법은 프로젝트 B의 출력을 DLL로 변경하는 것입니다 (현재 exe입니다). 변경하려면 Project B's 속성으로 이동하여 Output TypeClass Library으로 변경하십시오. 그런 다음 B을 다시 작성하고 프로젝트 B의 출력 dll을 프로젝트 A의 참조로 추가하고 dll B의 양식을 호출하십시오.

0

그러나 사용자가 추가/업데이트/데이터 가져 오기와 같은 작업을 수행하는 경우 현재 exe는 '개체 참조가 개체 인스턴스로 설정되지 않았습니다.'예외를 throw합니다.

그러면 양식에 예상되는 일부 속성이 있거나 생성자 오버로드로 인해 호출 할 것으로 예상됩니다.

+0

그건 내 첫 번째 생각이지만, 불행히도 양식에 어떤 속성이나 생성자 오버로드가 필요하지 않습니다. – Sarang

+0

그러한 확신을 가지고 말하면 양식의 출처가 있어야합니다. 프로젝트에서 양식 파일을 열고 중단 점을 넣어서 어떤 일이 발생하는지 확인하십시오. – CodeCaster

+0

두 가지 모두 내 프로젝트입니다. 그러나 참조 EXE는 'MetaData'라고 불리는 코드를 들여다 볼 수 없습니다. – Sarang

관련 문제