F # derleyici, klasörleri iyi destekler. Visual Studio'nun varsayılan yapılandırmada, birisinin F # projelerine klasör eklemesine izin vermemesi gerçeğine işaret ediyor olabilirsiniz - bu gerçek bir gerçektir. Ancak, bir şekilde proje dosyalarınıza klasörler eklemeyi başarırsanız (dosyayı el ile düzenleyerek veya F# Power Tools ile), F # derleyicisinde bunlarla ilgili herhangi bir sorun olmayacaktır.
Ancak, bu durum sizin durumunuzla ilgisi yoktur, çünkü komut dosyaları (fsx
) derlenmiş modüller (fs
) ile aynı şey değildir. Komut dosyalarının birbirine bağlanacak bir projesi yoktur ve birbirlerinin kodunu kullanmak için birbirlerinin yerine #load
olmalıdır. Ve #load
herhangi bir yoldan yapılabilir.
Örneğin, böyle kodunuzu hazırlamak isteyebilirsiniz: o zaman
ProjectFolder
-> Common
-> Helpers.fsx
-> Function1
-> function.json
-> run.fsx
-> Function2
-> function.json
-> run.fsx
Ve Function1/run.fsx
içinde, göreli yolu kullanarak dosyayı Helpers.fsx
yük: netleştiği üzere
// Function1/run.fsx
#load "../Common/Helpers.fsx"
let x = Helpers.someFunction()
Yukarıdaki örnekte, bu şekilde yüklenen bir komut dosyası, komut dosyası dosyasından adında bir modül olarak ana makine komut dosyasının içinde görünecektir.
Bu işler, ancak zamanla çok dağınık hale gelecektir. Bunun yerine ön derlenmiş kodla gitmenizi tavsiye ederim. Bu şekilde, ortak kodu paylaşılan bir kitaplığa koyabilir ve her iki işlevden de referans alabilirsiniz.
this recent video from NDC Oslo'u çok öneriyorum. Bu şeyler ve daha fazlası hakkında çok iyi konuşuyor.
Komut dosyaları yerine Azure İşlevleri için bir fsproj (önceden derlenmiş) kullanılmasını öneririm. Özellikle de fonksiyonlar arasında kod paylaşmak istiyorsanız. Ön derleme için sadece avantajlar vardır. Bir VS Azure Functions projesi kullanamazsınız, ancak buna ihtiyacınız yoktur. – TheQuickBrownFox