: 예상대로 나는 웹 애플리케이션과 ClassLibrary 모두의 소스 코드 솔루션을 빌드 할 때왜 MSBuild는 copy local이 false로 설정된 dll을 복사합니까? 우리의 솔루션의 구조이다
Solution.sln
WebApp.csproj
references ClassLibrary
ClassLibrary.csproj
references System.Net.Http.Formatting.dll with Copy local = false
는 지역의 작품을 복사 System.Net.Http.Formatting.dll는 복사되지 않습니다 WebApp/bin 디렉토리
그러나 프로젝트를 최종 클라이언트에 배포 할 때 컴파일 된 클래스 라이브러리 (.dll)를 참조하는 웹 애플리케이션 소스 코드 만 제공합니다. 이 경우 솔루션은 다음과 같습니다
Solution.sln
WebApp.csproj
references ClassLibrary.dll which uses System.Net.Http.Formatting.dll
이 부분적으로 컴파일 된 솔루션을 컴파일의 System.Net.Http.Formatting.dll는 우리에게 문제의 원인이되는 웹 애플리케이션/bin 폴더에 복사됩니다. 나는 세부적인 빌드 출력을 조사했는데 DLL이 복사 작업이 DLL의 소스 위치에 복사
는
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Net.Http.Formatting.dll
일부 다른 하나는 System.Net.Http.Formatting의 언급이 있습니다입니다. 내가 꽤 이해가 안되는 DLL 어셈블리.
System.Net.Http.Formatting.dll이 bin 폴더에 복사되지 않도록하는 방법은 무엇입니까?
감사합니다.
당신이 할 수있는 한 가지는 ** post build ** 이벤트에'del $ (TargetDir) System.Net.Http.Formatting.dll/Q/F'와 같은 것을 넣는 것입니다. –
먼저 프로세스가 파일을 복사 중입니다. –
@ T.S. 우리는 bin/폴더에있는 dll이 고객이 자신의 dll을 집어 넣을 수 없도록하고 싶지 않습니다. 버전 2에서 System.Net.Http.Formatting.dll을 사용하고 있지만 버전 4에서 System.Net.Http.Formatting.dll을 사용하려고한다고 가정합니다. 그래서 우리는 bin/clean을 유지하고 우리 버전의 DLL을로드합니다 다른 위치에서. bin/폴더에서 파일을 삭제하면 고객의 버전도 삭제됩니다. 어쨌든 고마워! – jakubka