2013-08-12 10 views
6

के रूप में संकलित क्यों मैं टाइप प्रदाता को * .exe फ़ाइल के रूप में [<TypeProviderAssembly()>] और [<EntryPoint>] के अंदर क्यों नहीं बना सकता?एफ # टाइप प्रदाता * .exe फ़ाइल

जब मैं #r @"d:\TP\bin\Debug\MyTypeProvider.exe" का उपयोग कर टी.पी. इस तरह के संदर्भ के लिए प्रयास करते हैं, मैं निम्न देखें:

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.

मैं, पृथक प्रक्रिया में एक प्रकार निष्कर्ष क्रम की आवश्यकता है, क्योंकि यह होना चाहिए 64bit (विपरीत 32bit वी.एस. प्रक्रिया)। लेकिन मैं सभी चीजों को एक फाइल में पैक करना चाहता हूं, इसे वीएस से संदर्भित करना और बाहरी प्रक्रिया के रूप में शुरू करना चाहता हूं।

उत्तर

2

शायद EXE के बजाय डीएलएल की तलाश करने के लिए कुछ अच्छा अंतर्निहित कारण है, लेकिन मुझे संदेह है कि यह एक मनमाना सीमा हो सकती है।

मैं एफएसआई में काम करने के लिए चीजें प्राप्त कर सकता हूं अगर मैं असेंबली का पूरा नाम TypeProviderAssemblyAttribute कन्स्ट्रक्टर (उदा। [<TypeProviderAssembly("MyExe, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]) पर आपूर्ति करता हूं, लेकिन इंटेलिसेन्स काम नहीं करता है और मैं अन्य परियोजनाओं से टीपी का उपयोग नहीं कर सकता। टीम के साथ एक बग दर्ज करने पर विचार करें - लेकिन यह संभवतः मदद करेगा यदि आप यह साबित कर सकते हैं कि आपको अपने परिदृश्य के लिए डीएलएल के बजाय EXE की आवश्यकता क्यों है।

+0

टीपी SharePoint से कनेक्ट करने में सक्षम होना चाहिए। यह केवल '64 बिट' प्रक्रिया से संभव है। वीएस '32 बिट' ऐप है जिसका अर्थ है इंटेलिसेन्स भी। मैं इसे सीधे प्रकार प्रदाता से नहीं कर सकता। एकमात्र संभावित समाधान जो मैं देखता हूं वह अलग-अलग '64 बिट' प्रक्रिया शुरू करना है और डब्ल्यूसीएफ नामित पाइप का उपयोग करके उनके बीच संवाद करना है। एक exe में सेवा और ग्राहक पैक करना अच्छा लगेगा। –

+0

आप [वर्तमान कार्यान्वयन] (https://github.com/sergey-tihon/PowerShellTypeProvider) देख सकते हैं। लेकिन मैं इन परियोजनाओं को एक में विलय करना चाहता हूं। मुझे लगता है कि इस मामले में इसका उपयोग करना आसान होगा। –

संबंधित मुद्दे