2016-12-20 16 views
3

.NET Core CLI를 사용하여 System.Data.SqlClient.dll을 사용하여 C# AWS 람다 패키지를 작성하려고합니다.C# AWS Lambda 패키지를 만들고 있습니다. System.Data.SqlClient.dll을 올바르게 포함하려면 어떻게합니까?

내 C# 람다 함수에서 외부 SQL Server 인스턴스에 연결하려고합니다. 그렇게함으로써, 필자는 'using System.Data.SqlClient'문을 코드 내에서 사용하고 일부 클래스를 사용합니다.

AWS는 'dotnet restore'및 'dotnet publish'를 사용하여 패키지를 빌드하는 몇 가지 예를 제공합니다. 몇 가지 작업을 마친 후, 이들은 내 프로젝트와 완벽하게 작동합니다.

* \ 디버그 \ 빈 \ netcoreapp1.0 \ \ 런타임 *

포함하는 디렉토리 '유닉스'게시 '승리', 'WIN7-64 : 실행 한 후 디렉토리 구조를 게시, 게시하면 다음과 같은 디렉토리가 '및'win7-x86 '. 깊은

이 디렉토리 안에, 내가 모듈 'System.Data.SqlClient.dll'을 찾아 내, 예를 들면 :

빈 \ 디버그 \ netcoreapp1.0 \ 유닉스 \ lib 디렉토리 \ \ 런타임을 게시 \ \ netstandard1.3 \ 빈 \ 디버그 \ netcoreapp1.0 \ \ 런타임 \ WIN \ lib 디렉토리 \ netstandard1.3 문제는 AWS 람다이 디렉토리 구조의 내부 모듈을 찾을 수 없습니다 것입니다

게시 할 수 있습니다. 나는 다음과 같은 오류 얻을 코드를 테스트 할 때 :

"errorMessage": "Could not load file or assembly 'System.Data.SqlClient, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified."

을 나는이 문제에 대한 참조를 발견하지 않았습니다하지만 AWS가 적절한 파일을 찾을 수 있도록 디렉토리 구조를 수정해야한다고 가정 할 . 나는 이것이 올바른 런타임 모듈을 선택한다는 것을 의미한다고 생각한다.

올바른 경로에 있습니까? 누구든지 더 나은 이해와 조언을 갖고 있습니까? C# 람다 함수가 너무 새롭기 때문에 나는 이것에 대해 더 많은 정보를 찾기가 매우 어렵다.

미리 감사드립니다.

답변

3

포장을 수행하기 위해 dotnet CLI와 통합되는 Amazon.Lambda.Tools 패키지를 사용하는 것이 좋습니다. 기본적으로 당신은 도구로 NuGet 패키지를 추가하고 실행합니다

dotnet lambda package 

다른 명령이

dotnet lambda help 

패키지의 명령은 우리가 발견 한 거친 부분의 일부를 도움을 실행하여뿐만 아니라 당신이 발견 할 수있다 dotnet publish 명령을 사용하십시오. 예를 들어, package 명령은 System.Data.SqlClient의 경우 파일을 추가로 복사합니다.이 https://github.com/aws/aws-lambda-dotnet/tree/master/Libraries/src/Amazon.Lambda.Tools

+0

이것이 내가 누락 된 것이라고 생각합니다. 환상적입니다! – theoneandonly2

+0

@Norm Johanson "파일의 여분의 복사"란 무엇입니까? – CamHart

+0

Visual Studio 2015에서 새로운 Lambda C#을 만들었고 Amazon.Lambda.Tools가 있지만 System.Data 또는 System.Data.SqlClient를 찾을 수 없습니다. 어떤 아이디어? – NealWalters

0

System.Data.SqlClient.dll과 동일한 문제가있었습니다. 왜 그런지 모르지만 빌드 후 출력 디렉토리로 복사하지 않는 경우가 있습니다. 프로젝트에이 dll을 파일로 추가하고 copy to output 속성을 true으로 설정하십시오.

+0

감사를 GitHub의 저장소를 체크 아웃에 대한 자세한 내용은

, 나는 의견을 보내 주셔서 감사합니다. OS 기반 디렉토리 구조가 OS 특정 구현이있는 모듈과 복원 프로세스 중에 있어야한다고 생각합니다. .NET Core CLI는 응용 프로그램을 휴대용으로 유지하기 위해 OS에 대한 가정을하지 않습니까? AWS와 잘 작동하지 않지만 이해할 수 있습니다. – theoneandonly2