2010-12-30 3 views
3

F # PowerPack 용 사전 빌드 된 이진 파일은 .NET 2.0 런타임에 대해 컴파일됩니다. .NET 4.0 프로젝트를 가지고 있다면 .NET 4 런타임 용 PowerPack 소스를 컴파일 할 때 어떤 이점이 있습니까?F # PowerPack 대상 런타임

+0

F # v2 SP1 컴파일러를 사용하여 .NET 4.0에 대해 작성된 F # PowerPack 바이너리가 필요한 경우 [여기] (http://dl.dropbox.com/u/10282384/FSPowerPac kCLR4SP1.7z). – ildjarn

+0

.NET 2 및 .NET 4 바이너리가 모두 포함 된 공식 NuGet 패키지가 정말 좋을 것입니다. –

답변

7

.NET 2.0 ASP.NET 프로젝트 인 F# snippets web site에 F # PowerPack의 .NET 2.0 버전을 사용했습니다. 4.0 버전을 사용하지 않는 유일한 단점은 2.0 버전 (PowerPack 2.0 버전에서 참조)을 찾을 때 FSharp.Core.dll 4.0 버전을로드하도록 구성을 추가해야한다는 것입니다.

<configuration> 
    <!-- ... --> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" /> 
     <bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+1

그래서 이점이 있지만 거대한 것은 아닙니다. VS # 2010의 일부로 F #이 릴리스되었으므로 PowerPack의 기본 바이너리 다운로드에는 이러한 해결 방법이 필요합니다. –

+1

방금 ​​fsharp 및 fsharp powerpack을 사용하여 asp.net mvc 3 사이트에서 문제가 발생했습니다. 예외 메시지와 함께 실패했습니다 : 파일 또는 어셈블리 'FSharp.Core, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'또는 해당 종속성 중 하나를로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040). 위에서 언급 한대로 dependantAssembly 요소를 추가하고이를 정렬했습니다. – Kit

+0

@Kit 꽤 오래 전 이었으므로 더 이상 세부 사항을 알지 못합니다 .--). F # PowerPack for .NET 4.0 (소스 코드 사용)을 다시 컴파일하는 것이 더 쉬울 수도 있습니다. –

1

나이 .NET에 대한 나의의 app.config가

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 

하지만 파워 팩을 설치하고 잘에 작동합니다

나는 다음 다음 그냥 괜찮 았는데 같은 것을 추가했다 VS2010 및 .NET4 fsproj