2013-01-23 4 views
0

배치, 내 보낸 다음 다른 상자로 가져온 런타임 예외가 발생했습니다 ... CRM 솔루션. 예외입니다 : 나는이 작업을 수행하기 위해 MSBUILD 스크립트를 사용할 때Dynamics CRM - MSBUILD에서 새로운 Org, Build/Deploy 플러그인을 모두 스탬프 - 문제

System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

그것은에만 발생합니다. 이 작업을 위해 VS (2010)를 손으로 사용하면 모든 것이 잘됩니다. 첫 번째 용의자는 제 대본입니다. 내 스크립트는 http://fczaja.blogspot.com/2012/07/continuous-integration-with-crm.html에서 영감을 얻어 MSBUILD 사용자 지정 작업을 사용합니다. ExportSolutionRequest 객체를 전달, 최대 캐스트 IOrganizationService.Execute 때문에, Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy를 사용 -

내 감각은 문제가 내보내기 단계에있을 수 있습니다. SolutionNameManaged 속성 만 설정했습니다. 아마도 우리는 다른 부동산을 잃어 버렸을 것입니까?

나는 근본 원인을 좁히려 고 노력하고 있습니다.

답변

2

ILMerge를 플러그인 어셈블리에 사용하고 있습니까?

그렇다면 아마도 레퍼런스 어셈블리에 문제가 있다고 생각합니다. 아마도 빌드 서버에는 .NET 4.5를 가지고 있지만 수동으로 빌드하는 시스템에는없는 것이 좋습니다. 이 http://www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx

근본적인 수정이 ILMerge 참조 어셈블리로 변경하는 것입니다 - /에 targetPlatform : 이것은 참으로 경우에 해당

이러한 링크는 학습과 설명 할 것 "V4, C : \의 Program Files (x86) \ 참조 어셈블리 \ Microsoft \ Framework.NETFramework \ v4.0 "

+0

Ben - Thanks. 우리는 실제로 ILMerge를 사용하고 있으며 최근에 VS 2012를 빌드 시스템에 추가했습니다. 예, 동료는 [link] (http://stackoverflow.com/questions/13748055/could-not-load-type-system-runtime-compilerservices-extensionattribute-from-as)에서 토론을 지적했습니다. 그 대답. 예제에서와 같이 "Program Files"대신 "Program Files (x86)"디렉터리를 참조하는 것이 중요합니다. –