2013-08-12 23 views
6

Neden Typeerer'ı [<TypeProviderAssembly()>] ve [<EntryPoint>] ile * .exe dosyası olarak oluşturamıyorum? I #r @"d:\TP\bin\Debug\MyTypeProvider.exe" kullanarak, TP, örneğin referans çalışırkenF # Türü Sağlayıcı * .exe dosyası olarak derlendi

, aşağıdaki bkz olması gerektiği için

test.fsx(3,1): error FS3031: The type provider 'd:\TP\bin\Debug\MyTypeProvider.exe' reported an error: Assembly attribute 'TypeProviderAssemblyAttribute' refers to a designer assembly 'MyTypeProvider' which cannot be loaded or doesn't exist. Could not load file or assembly 'file:///d:\TP\bin\Debug\MyTypeProvider.dll' or one of its dependencies. The system cannot find the file specified.

I ayrı bir işlemde tür kesmesi çalışma zamanı olması gerekir 64bit (32bit VS prosesin aksine). Ama her şeyi tek bir dosyada paketlemek, VS'den referanslamak ve harici bir süreç olarak başlamak istiyorum.

cevap

2

Belki de EXE'ler yerine her zaman DLL'leri aramak için bazı iyi nedenler var, ancak bunun keyfi bir sınırlama olabileceğinden şüpheleniyorum.

Derlemenin tam adını TypeProviderAssemblyAttribute yapıcısına (ör. [<TypeProviderAssembly("MyExe, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]) sağladım, ancak IntelliSense çalışmazsa ve TP'yi başka projelerden kullanamazsam FSI'da işleri halledebilirim. Ekibiyle bir hatayı dosyalamayı düşünün - ancak senaryonuz için bir DLL yerine bir EXE'e neden ihtiyaç duyduğunuzu haklı gösterebilirseniz muhtemelen yardımcı olacaktır.

+0

TP, SharePoint'e bağlanabilmelidir. Sadece 64bit sürecinden mümkündür. VS de IntelliSense anlamına gelen 32bit 'app' dir. Bunu doğrudan tip sağlayıcısından yapılamıyorum. Gördüğüm tek çözüm, '64bit' sürecini başlatmak ve WCF adlı boruları kullanarak aralarında iletişim kurmaktır. Hizmet ve müşteriyi tek bir exe'ye paketlemek güzel olacaktır. –

+0

[Geçerli uygulama] 'ya bakabilirsiniz (https://github.com/sergey-tihon/PowerShellTypeProvider). Ama ben bu projeleri bir araya getirmek istiyorum. Bence bu durumda kullanımı daha kolay olacak. –

İlgili konular