2015-03-27 19 views
5

VS2013'te oluşturduğum bir F # programım var. Bunu .NET Framework 4.5 yüklü bir Windows 2008 R2 sunucusunda dağıtmak niyetindeyim. Şimdi, programı görsel stüdyosunda oluşturduğumda, debug/bin dizininde (MyProgram.exe) bir exe oluşturur. Exe ile fharp.core.dll bir kopyasını eklemek gerekir mi? Veya, inşa süreci otomatik olarak gerekli dependancy DLL'leri (fsharp.core, fsharp.data, fsharp.data.TypeProviders) derler mi? Ben online arama yapabilirsiniz çoğu araştırma VS2010 bakmak ve şu anda fsc, exe kullanmıyorum.F # exe'yi Dağıtma

Sağladığınız bilgiler için teşekkürler.

+1

Bin/debug klasöründeki tüm dosyaları dağıtım konumuna uyandırmanız gerekir. Yan not F # MSIL'e derler, F # ve C ile yazılmış bir .NET uygulamasının dağıtılmasında hiçbir fark yoktur. # – theDarse

+1

@ TheDarse Bu tam olarak doğru değil. F # kodu, FSharp.Core (listeler, seçenekler vb.) Içinde tanımlanan tür ve işlevleri kullanır ve FSharp.Core BCL'nin bir parçası olmadığı için, bu derlemenin * bir şekilde * programın kullanımına açık olduğundan emin olmanız gerekir. bu türlere bağlıdır. –

cevap

5

FSharp.Core.dll ürününü .exe ile birlikte kopyalamanız gerekebilir.

Sunucuda zaten yüklü ise, gerekli olmayabilir, ancak doğru sürümü F # olması gerekir.

Aksi takdirde, F # lisansı FSharp.Core.dll dosyasını kendi ikili dosyalarınızla birlikte dağıtmanıza izin verir.

Ayrıca 'resmi' FSharp.Core NuGet package da var, bu sizin beğeninize göre daha fazla.

+0

Fsharp.core.dll dosyasını MyProgram.exe dosyasının bulunduğu dizine kopyaladım. Başlattığında, işlenmeyen bir özel durum hatası alıyorum "Eksik yöntem Eception: Microsoft.Fsharp.Control.FsharpAsync'1 FSharp.Data.Runtime.IO.asyncReadTextAtRuntime ..." VS2013 içinde gayet düzgün çalışıyor . Bunun neden işe yaramadığını anlamıyorum. – RT1138

+1

'a yardım ettiğiniz için teşekkürler. Sorunun ne olduğunu özellikle söyleyemem, ancak * MissingMethodExceptions *, derleme sürümünde uyumsuzluklar nedeniyle her zaman (IME). Programın probing yolundaki FSharp.Core.dll dosyasının sürümünün, derlenmiş olduğu sürümle aynı olduğundan emin olmanız gerekir. –

+0

Sorunu gidermek için [Fuslogvw] (https://msdn.microsoft.com/en-us/library/e74a18c4.aspx) 'ı kullanabilirsiniz ... –

7

FSharp.Core.dll (F # çalışma zamanı) ve ona bağlı herhangi bir başvuru derlemesini (diğer herhangi bir F # derlemesi) statik olarak bağlamak için derleyici seçeneğini --standalone kullanabilirsiniz.

+0

VS F # projesinde bu seçeneği nasıl ekleyebilirim? Görünüşte, projeyle ilgili hiçbir şey yok -> seçenekler -> – dudeNumber4

+0

inşa et Proje alanında "diğer bayraklar" test alanında -> özellikler -> inşa – rasmusm