2013-08-14 2 views
1

가져온 dll을 사용하는 C# .NET/Visual Studio에서 도구를 개발했습니다. 프로젝트가 빌드되면 dll이 출력 폴더에 복사됩니다.extern DLL이있는 네트워크 공유에서 .NET 응용 프로그램을 시작하면 충돌이 발생합니다.

응용 프로그램을 설치할 필요가 없습니다. exe와 dll을 로컬 폴더에 복사하여 시작할 수 있습니다.

는 지금은 네트워크 공유에서 응용 프로그램을 시작하려는 : 내가 외부 DLL에서 함수를 호출하지 않는 동안

\\localhost\program\prog.exe 

모두 괜찮습니다. 그런 다음 다음과 같은 오류 창이 충돌 ...

프로그램의 작동이 중지되었습니다

질문 :는 로컬 폴더에 모두 복사하지 않고 및 변경없이 작동하게 할 수있는 방법이 있나요 클라이언트 컴퓨터의 정책

응답 : 매핑 : \ localhost to Z :이 문제가 해결되었습니다.

문의 주시기 바랍니다, 이쪽은 내 첫 번째 질문 ;-)

안부, 기독교

+0

어떤 프레임 워크 버전을 사용합니까? –

+0

@Damien : .NET Framework 4 (클라이언트 프로필) –

답변

1

는 "caspol"문제 같은 소리입니다. \\localhost\program\과 같은 네트워크 공유는 신뢰가 약화됩니다. 흥미롭게도, (일부 시간 전)에서 이름주 실제로 더 신뢰를 얻을 - 그래서 하나의 간단한 옵션은 z:\\localhost\program 및 액세스 z:\prog.exe으로 말하자면,지도하는 것입니다 - 당신이 그것을 작동하게 찾을 수 있습니다. 그건 그렇고, 옵션은 다음과 같습니다 각 클라이언트 시스템

  • ClickOnce를 사람들의
    • caspol 변경, 후자는 간단하다. 그런 다음 ClickOnce 응용 프로그램 (.exe가 아닌)을 실행하기 만하면됩니다. ClickOnce 다음에 기본적으로 은 작동합니다.. 사용자는 IIRC가 애플리케이션을 처음 실행할 때 "확인"을 클릭해야하지만, 그게 문제입니다. 외부 dll이 ClickOnce 배포라고 알려져 있어야합니다. 즉,이 DLL은 프로젝트에 있으며 발송하도록 표시되어 있습니다.

    +0

    프레임 워크 버전을 묻는 질문은 .NET Framework 4에서 변경되었으며 기본적으로 네트워크 공유에서 시작된 프로그램은 완전히 신뢰합니다. –

    +0

    \\ localhost를 명명 된 공유 (Z :)에 매핑하면 Marc Gravell 덕분에 문제가 해결되었습니다. –

    +0

    @Damien 그것이 작동했다는 사실은 내 기억이 정확하다는 것을 암시하며, 심지어 4에서 그것은 매핑 된 매핑되지 않은 공유를 구별합니다 –