본인은 이러한 오류가 여러 번 논의 된 것을 이해합니다. 일부는 DLL 파일의 버그 였고 일부는 DLL 버전을 변경하여 해결했으며 다른 하나는 단서를 갖고 있지 않은 것으로 보입니다. 어쨌든 나는 행운을 시험해보기 위해 게시한다.Oracle DataAccess 관련 : "호출 된 멤버가 동적 어셈블리에서 지원되지 않습니다."
C# GUI에서 그리드의 행을 선택할 때 응용 프로그램이 충돌했다. 나는 그것이 내 로컬 컴퓨터 함께 할 수있는 뭔가가 알 수 있도록
System.NotSupportedException: The invoked member is not supported in a dynamic assembly.
at Oracle.DataAccess.Types.OracleUdt.GetAllReferencedAssemblies()
at Oracle.DataAccess.Client.RegAndConfigRdr.setudtmapping(Hashtable& s_mapUdtNameToMappingObj)
at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
at Oracle.DataAccess.Types.OracleUdt.SetCustomTypeMappings()
at Oracle.DataAccess.Types.OracleUdt.GetUdtName(String customTypeName, String dataSource)
at Oracle.DataAccess.Client.OracleParameter.SetUDTFromCustomObject(OracleConnection conn, IOracleCustomType customObj, Int32 i)
at Oracle.DataAccess.Client.OracleParameter.PreBind_OracleObject(OracleConnection conn)
at Oracle.DataAccess.Client.OracleParameter.PreBind_Object(OracleConnection conn)
at Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection conn, IntPtr errCtx, Int32 arraySize)
at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
at Oracle.DataAccess.Client.OracleCommand.ExecuteReader()
내 동료는이 문제가 발생하지 않았다 스택 트레이스는 것 같습니다. 내 동료가 사용
find . -name "Oracle.*DataAccess*.dll"
./GAC_32/Oracle.DataAccess/v4.0_4.121.2.0__89b483f429c47342/Oracle.DataAccess.dll
./GAC_MSIL/Oracle.ManagedDataAccess/v4.0_4.121.2.0__89b483f429c47342/Oracle.ManagedDataAccess.dll
:
나는 (: /windows/Microsoft.NET/assembly 전 C에서, 닷넷 4.0를 사용) 것 같습니다, GAC에 Oracle.DataAccess.dll을 보았다 : V2.121.3.0 및 관리되는 DLL 없음 내 DLL이 VS2015와 VS2013을 사용하는 이유는 DLL이 VS2015와 VS2013을 사용한다는 것입니다. 따라서 VS2015에서 빌드되고 실행되는 Oracle DLL을 오랫동안 알게되었습니다.
가장 가까운 게시물은 여기에 있습니다 : Passing Oracle UDT to stored procedure throws error on ExecuteNonQuery하지만 해결 방법이 없습니다.
코드를 알려주시겠습니까? –
Visual Studio의 모든 버전에서 V2.121.3.0 및 V4.121.2.0을 모두 사용할 수 있습니다. 그러나 설치된 버전은 .NET 대상 컴파일러 설정과 일치해야합니다. 즉, 버전 4.xxx의 대상 버전을 3.0 이상으로 설정해야합니다. 버전 2.xxx를 사용하려면 컴파일러 대상 버전이 2.0이어야합니다 (더 이상 사용할 수 없음) –
@Wernfried Domscheit, 죄송합니다. 애플리케이션 바이너리 만 실행 및 테스트 할 수 있습니다. 소스가 없습니다. :-( –