2010-05-11 6 views
13

Visual Studio 2010을 사용하고 웹 배포를 사용하여 .Net MVC 사이트를 특정 환경으로 승격합니다. Elmah를 설치했는데 내 DEV 환경에서 잘 작동했지만 SQLite가 좋은 형식이 아니기 때문에 TEST를 밀 때 예외가 발생했습니다.원치 않는 SQLite가 bin에 삽입되었습니다.

저는 Elmah에서 또는 내가 아는 한 SQLite를 사용하지 않습니다. SQLite에 대한 모든 참조를 제거했으며 모든 구성 bin 디렉토리에서 .dll을 제거했습니다. 그러나 각 빌드마다 여전히 삽입됩니다. 예외 문제는 SQLite를 CPU Any 용으로 빌드 할 수 없다는 것이고 내 환경은 x86에서 x64까지 다양합니다. 하지만 SQLite가 더 이상 존재하지 않는 것을 선호합니다.

나는 Elmah를 제거한 후 SQLite를 \ bin 디렉토리에 삽입했습니다. 이제 Elmah를 다시 설치했으며, 각 빌드 후에 SQLite.dll을 \ bin에서 수동으로 삭제합니다. SQLite가 각 빌드 후에 \ bin에 삽입되도록하는 원인을 결정하는 방법은 무엇입니까?

+0

나는이에 명확하지 않다 :

단순히 선호하는 PropertyGroup 요소에서 웹 응용 프로그램의 프로젝트 파일이 추가? –

+0

스테판, 엘마 (Elmah) 출처의 참고 문헌을 삭제하지 않았습니다. 나는 엘마 바이너리를 사용했다. 나는 그들의 깨끗한 코드를 만져야 할 것 같은데. 나는 근원으로 들어갈 것이다. – wilk

답변

14

당신이 SQLite는 사용하지 않는 경우는 다음 단순히 기준 수입 곳에서 소스 위치에서 제거 할 필요가 ... 할 수있는 매우 고통 것입니다. 이를 확장하기 위해 ELMAH를 로컬 드라이브의 경로 C:\ELMAH에 다운로드하고 압축을 풀 었다고 가정 해 봅시다. ELMAH에 대한 참조를 추가 할 때 C:\ELMAH\bin\net-2.0\Release과 같은 C:\ELMAH\bin 아래의 플랫폼 버전 중 하나를 가리킨 것일 수 있습니다. C:\ELMAH\bin 하위 디렉터리에서 Elmah.dll, Elmah.pdbElmah.xml을 제외한 다른 모든 원치 않는 어셈블리와 파일을 제거하십시오. 엄밀히 말하면, 후자의 2 개가 필요하지 않지만 그럼에도 불구하고 추천됩니다. 이 작업을 완료하면 Elmah.dll에 대한 참조를 Visual Studio에서 프로젝트에 추가 할 수 있으며 종속성은 응용 프로그램의 bin 디렉토리로 가져 오지 않습니다. bin 디렉토리를 삭제하고 이전 참조에서 부실 복사본 인 System.Data.SQLite.dll을 제거하려면 프로젝트를 다시 빌드해야 할 수 있습니다. 오류 로그 저장소로 Elmah.SQLiteErrorLog을 사용하지 않는 한 ELMAH는 System.Data.SQLite.dll없이 정상적으로 작동합니다.

다른 제안에 따라 ELITE 소스에서 SQLite에 대한 참조를 제거하고 비공개 빌드를 만들지 않아도됩니다.

+1

Stefan의 대답은 약간의 노력으로 내 목표를 달성하지만, Atif의 솔루션은 문제를 소스를 건드리지 않고 해결합니다. 이것은 내가 정말로 찾고 있던 것입니다.게다가, 나는 엘마에 관해서 Atif와 논쟁해야한다. – wilk

+1

Elmah를 참조하는 프로젝트에 대해 코드 분석을 설정 한 경우이 접근 방식이 작동하지만 VS2010 MSBUILD 경고 CA0060이 발생합니다. 이 경고를 표시하지 않을 방법이 없습니다. 그래서 던지기 : 프로젝트 의존성에 불필요한 어셈블리가 있거나 코드 분석 경고와 함께 살아야합니다. 나는 어느 쪽이든을 좋아하지 않는다 ... – BrettRobi

+2

NuGet 사용자를위한 어떤 제안? NuGet에서 Elmah 패키지를 가져 오면 모든 빌드에서 bin 디렉토리에 SQLite dll을 던집니다. – BZink

0

"파일 찾기"지원이있는 텍스트 편집기를 사용하여 모든 프로젝트 파일에서 "sqlite"를 검색하십시오. 뭔가 그것을 참조해야합니다.

+0

샘, 감사합니다. 내가 찾은 파일에서 찾았지만 SQLite에 대한 참조가 발견되지 않았습니다. – wilk

2

나는 Visual Studio가 SQLite가 Elmah에 필요하다는 것을 감지하고 찾으면 그것을 복사한다고 생각합니다. 당신과 같은 목표를 달성하기 위해 Elmah 소스 코드에서 모든 SQLite를 제거하고 다시 작성했습니다.

+1

차 칭! 프로젝트에서 SQLiteErrorLog.cs를 제거하고 빌드하고 실행하십시오. 도와 주셔서 감사합니다. – wilk

0

나는 그것이 낡은 질문이지만, 비슷한 문제가있어 여기에 도착했기 때문에 아마도 내 대답은 여전히 ​​다른 사람들에게 도움이 될 것입니다. 당신이 ELMAH 소스 코드에서 SQLite는 제거했고, 그것을 다시 컴파일

<ExcludeFilesFromDeployment>bin\System.Data.SQLite.dll</ExcludeFilesFromDeployment> 
관련 문제