2017-09-22 4 views
0

내장 된 BigInteger 클래스보다 훨씬 빠른 거대한 숫자 조작을 전문으로하는 Mpir.Net이라는 Nuget 라이브러리를 추가했습니다. 내가 그것을 추가했을 때 Visual Studio 2017은 DLL을 찾아 내 참조에 추가하고 DLL에 정의 된 변수와 함수를 기반으로 제안을 제공 할 수있었습니다. Visual Studio는 비슷한 문제가있는 사람들의 많은 질문과 달리 DLL을 분명히 찾을 수있었습니다.참조 된 Nuget DLL을 찾을 수 없음 Visual Studio 사용

문제는 프로그램을 실행할 때 xmpir64.dll을 찾을 수 없다는 것입니다. Visual Studio에서 코드 편집기의 내용을 참조 할 수 있지만 문제가 있습니다.

대상 .NET 버전을 무용지물로 변경해 보았습니다. 문제가 무엇입니까? 부수적으로 C#과 Visual Studio가 새로 도입되었으므로 회신 할 때 명심하십시오. Here은 내 솔루션 탐색기의 그림에 대한 링크입니다.

+0

또한 프로젝트에 포함 된 Mpir.Net.dll 파일의 속성보기를 포함 할 수 있습니까? – CodexNZ

+0

@CodexNZ 작동하도록했습니다. 감사! – Byte11

답변

0

Mpir.Net은 관리되지 않는 라이브러리 (GMP)를 둘러싼 래퍼입니다. DLL을 찾을 수 없다는 말은 프로젝트 폴더에있는 관리되지 않는 폴더 (xmpir64.dll)를 찾고 있기 때문입니다 (래퍼 인 참조에서 관리되는 폴더가 아닙니다).

아마도 xmpir64.dll (및 x32도 역시)을 클릭하고, 오른쪽 하단의 속성을보고, 출력 디렉토리에 복사가 "항상 복사"로 설정되어 있는지 확인하십시오.

참고로 Mpir.NET은 관리되지 않는 리소스를 올바르게 처리하지 않으므로 메모리 누수가 큰 경우 놀라지 마십시오. 상업 코드로 사용하지 않을 것이라고 생각합니다.

+0

저는 십진법을 지원하는 빠른 BigInteger 라이브러리를 찾기 위해 50 개의 농구를 지켜 보았습니다. 큰 단점이없는 C#에 대해 알고 있습니까? 나는 Mpir가 메모리 누출 문제가 있다는 것을 몰랐다. 나는 이것을 상용 응용 프로그램에 사용하지는 않지만 꽤 무거운 물건에 사용하고 있습니다. 내장 된 BigInteger를 사용해야할까요? – Byte11

+0

효과가있었습니다! 왜 항상 복사하도록 설정해야합니까? – Byte11

+0

그것이 우리가 한 일이지만 256 비트 이하의 정수를 작업하고있었습니다. 우리는 또한 많은 것들을 생성하고 파괴 할 필요가 있었으며 메모리 누출을 아주 빨리 발견했습니다. – MineR