2013-01-30 2 views
4

큰 프로젝트 중 하나를 빌드 할 때 이상한 FSharp.Core 관련 오류가 발생하며 오류에 문제가있는 곳을 추적하는 데 도움이되는 위치 정보가 포함되어 있지 않습니다.프로젝트를 업그레이드 할 때 F # 3.0 컴파일러 오류 FS0193

컴파일 에러가 처음에 error FS0193: The module/namespace 'Microsoft.FSharp.Linq.RuntimeHelpers' from compilation unit 'FSharp.Core' did not contain the namespace, module or type 'LeafExpressionConverter'

인 나는이 프로젝트는 기존의 파워팩의 LINQ의 물건을 사용했기 때문에 그것이라고 생각, 그래서 나는 그을 제거. 그런 다음 5.0 대신 Entity Framework 4.3을 사용하는 것과 관련이 있다고 생각하여 업그레이드했습니다. 같은 오류. .NET 4.0, 4.5가 아니라 여전히 컴파일 중입니다 ... 아마도 이것이 원인의 일부입니까?

동일한 해결책으로 Doctypes.fsproj XML을 다른 프로젝트와 비교했을 때 모든 것이 정상적으로 보입니다. FSharp.Core 기준이 그렇게 알아 내기 위해 나에게 시간이 걸릴 수 있습니다이 오류의 작은 재현 버전을 생성하는 매우 큰 프로젝트입니다 <Reference Include="FSharp.Core" />

단순히, 여기에 사람이 신속한 답변이 있는지 궁금하네요.

다음은 MSBUILD 출력입니다 :

19> C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0\fsc.exe -o:obj\Debug\DTC.Doctypes.dll -g --debug:full --noframework --define:DEBUG --define:TRACE --doc:bin\Debug\Doctypes.XML --optimize- --tailcalls- --resource:statutes_ebook_cover.jpg -r:A:\svn\dtc\Publisher\Doctypes\bin\Debug\CsvHelper.dll -r:A:\svn\dtc\Publisher\Data\bin\Debug\DTC.Data.dll -r:A:\svn\dtc\Publisher\Formats\bin\Debug\DTC.Formats.dll -r:A:\svn\dtc\Publisher\Parser\bin\Debug\DTC.Parser.dll -r:A:\svn\dtc\Publisher\ReferenceParser\bin\Debug\DTC.ReferenceParser.dll -r:A:\svn\dtc\Publisher\Shared\bin\Debug\DTC.Shared.dll -r:A:\svn\dtc\Publisher\Solr\bin\Debug\DTC.Solr.dll -r:A:\svn\dtc\Publisher\Utilities\bin\Debug\DTC.Utilities.dll -r:A:\svn\dtc\Publisher\Doctypes\bin\Debug\EntityFramework.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll" -r:A:\svn\dtc\Publisher\packages\HtmlAgilityPack.1.4.6\lib\Net40\HtmlAgilityPack.dll -r:A:\svn\dtc\Publisher\packages\DotNetZip.1.9.1.8\lib\net20\Ionic.Zip.dll -r:A:\svn\dtc\Publisher\packages\LegislativeData.1.0.2773.180\lib\net40\LegislativeData.dll -r:A:\svn\dtc\Publisher\packages\LibrarianData.1.0.2773.6\lib\net40\Librarian.Data.dll -r:A:\svn\dtc\Lib\Office12\Microsoft.Office.Interop.Excel.dll -r:A:\svn\dtc\Lib\Office12\Microsoft.Office.Interop.Word.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll" -r:A:\svn\dtc\Publisher\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll -r:A:\svn\dtc\Publisher\Repository\bin\Debug\Repository.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.ComponentModel.DataAnnotations.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Configuration.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.Entity.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Numerics.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Runtime.Serialization.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll" --target:library --warn:4 --warnaserror --warnaserror:76 --vserrors --validate-type-providers --LCID:1033 --utf8output --fullpaths --flaterrors --highentropyva- "C:\Users\dfitch\AppData\Local\Temp\.NETFramework,Version=v4.0.AssemblyAttributes.fs" Helpers.fs Paths.fs FolioImport.fs Epub.fs Kindle.fs Ebooks.fs SharedLaw.fsi SharedLaw.fs SharedIndex.fs HistoryLinks.fs AdministrativeCodeHeaders.fs AdministrativeCode.fs AdministrativeCodeTOC.fs AdministrativeCodeIndex.fs SCRHeaders.fs Register.fs StatuteHeaders.fs Statutes.fs StatutesTOC.fs StatutesIndex.fs CrossReferences.fs SupremeCourtRules.fs Constitution.fs SessionTypes.fs CrDocs.fs EmergencyRules.fs OracleSession.fs LatsSession.fs TestSessionData.fs Session.fs Votes.fs SessionText.fs FiscalEstimates.fs LatsBulletinIndex.fs SharedBulletinIndex.fs AuthorIndex.fs SubjectIndex.fs JournalIndex.fs CrIndex.fs ActIndex.fs SectionsAffected.fs LCAmendmentMemos.fs LCActMemos.fs LCDocuments.fs RecordsOfCommitteeProceedings.fs VetoMessages.fs AssemblyInfo.fs Journals.fs Calendars.fs ProposalText.fs AmendmentText.fs EnrolledBillsText.fs RDAttachments.fs ActText.fs Budget.fs LegislativeRules.fs DraftingManual.fs AdminRulesManual.fs DraftingFiles.fs ExecutiveOrders.fs CapitolHeadlines.fs TownLawForms.fs FolioBillHist.fs FolioLaw.fs FolioSessionImport.fsi FolioSessionImport.fs FolioSession.fs FolioMisc.fs FolioIndexes.fs FolioCr.fs Wislaw.fs Help.fs Disclaimers.fs Dnotes.fs CCC.fs LCMemos.fs oag.fs AdministrativeCodeCites.fs StatutesRepealedRenumbered.fs LRBUserProcedures.fs LRBDraftingManual.fs 
19>FSC: error FS0193: The module/namespace 'Microsoft.FSharp.Linq.RuntimeHelpers' from compilation unit 'FSharp.Core' did not contain the namespace, module or type 'LeafExpressionConverter' 
19>C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets(155,9): warning MSB5021: "Fsc" and its child processes are being terminated in order to cancel the build. 
19>C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets(155,9): error : Build was canceled. 
+1

http://msdn.microsoft.com/en-us/library/hh323986.aspx LeafExpressionConverter'는 [페이지] (를 알려준'을 검색). 조금 숨겨져 있지만 페이지 하단에는 * "F # Core Library Versions 에서 지원됩니다 : 4.0, Portable."* 그게 당신에게 의미가 있는지 없는지 모르겠군요. 또한이 페이지는 "Visual Studio 2012"로 표시되어 .NET 4.5에 대한 종속성을 나타냅니다. –

+0

프로젝트는 이전에 VS2010/F # 2.0 (핵심 버전 4.0이었습니다)에 설치되어 있었고 괜찮 았습니다 ... LINQ의 라이브러리 의존성 중 하나가 이상하게도'FSharp.Core' 작업과 관련이 있다고 생각합니다. 다음 단계는 4.5에 대한 컴파일을 시도하는 것입니다. 그러나 만약 내가 필요가 없다면 나는하지 않을 것입니다 ... –

답변

7

귀하의 MSBuild에서 출력에 대한 참조를 보여줍니다 ...

C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll.

FSharp.Core의 F # 2.0 버전입니다. 대신 F # 3.0 버전을 참조 할 필요가 :

C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\FSharp.Core.dll

+0

이상합니다. VS2012에서 FSharp.Core 참조를 제거하고 참조 대화 상자의 "확장"섹션에서 4.3.0.0을 추가하면 4.0.0.0 버전이 추가됩니다. 그 경로를 수동으로 찾으면, 프로젝트 파일에'HintPath'를 추가하고 제대로 작동합니다. 그걸 발견해 줘서 고마워. –

관련 문제