2010-12-30 2 views
3

Предварительно созданные двоичные файлы для F # PowerPack скомпилированы против среды выполнения .NET 2.0. Если у меня есть проект .NET 4.0, есть ли какое-то преимущество для компиляции источника PowerPack для среды выполнения .NET 4?F # PowerPack Target Runtime

+0

Если кто-то хочет, чтобы исполняемые файлы F # PowerPack были созданы против .NET 4.0 с компилятором F # v2 SP1, я разместил их здесь [http://dl.dropbox.com/u/10282384/FSPowerPac kCLR4SP1.7z). – ildjarn

+0

Что было бы очень приятно, это официальный пакет NuGet, который содержит как .NET 2, так и .NET 4. –

ответ

7

Я использовал .NET 2.0 версию F # PowerPack в F# snippets web site, который представляет собой проект .NET .NET ASP.NET. Единственным недостатком не использования версии 4.0 было то, что мне пришлось добавить конфигурацию для загрузки версии 4.0 FSharp.Core.dll при поиске версии 2.0 (на что ссылается версия 2.0 PowerPack).

Я должен добавить что-то вроде следующего, а затем он работал просто отлично:

<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

Итак, есть какая-то польза, но не огромная. Тем не менее, поскольку F # был выпущен как часть VS 2010, кажется странным, что бинарная загрузка PowerPack по умолчанию потребует таких обходных решений. –

+1

У меня была проблема с сайтом asp.net mvc 3 с использованием fsharp и fsharp powerpack. Ошибка с сообщением об исключении: не удалось загрузить файл или сборку «FSharp.Core, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a» или одну из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040). Я добавил элемент dependantAssembly, как указано выше, и отсортировал его. – Kit

+0

@Kit Это было довольно давно, поэтому я больше не знаю деталей :-). Возможно, было бы проще перекомпилировать F # PowerPack для .NET 4.0 (используя исходный код). –

1

Мой app.config для старой .NET является

<?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

Смежные вопросы