2011-07-25 16 views
5

मेरे पास एक .NET क्लास लाइब्रेरी है (एक .dll फ़ाइल के रूप में) और उस लाइब्रेरी में एक स्थिर विधि वाला क्लास है। क्या कमांड लाइन से उस विधि को कॉल करने का कोई तरीका है?क्या मैं कमांड लाइन से .NET असेंबली से कोड चला सकता हूं?

+0

तुम्हारा मतलब है कि आप एक आदेश – Devjosh

+0

@Devjosh के रूप में कमांड लाइन से स्थिर समारोह उपयोग करना चाहते हैं: हाँ, मैं एक .cmd बनाना चाहते हैं

पद का सबसे महत्वपूर्ण हिस्सा इन आदेशों हैं फ़ाइल जिसमें 'magicallyCall MyAssembly.MyClass.DoStuff()' या ऐसा कुछ शामिल होगा। – sharptooth

उत्तर

10

Here पावरशेल से एक डीएलएल लोड करने और इसमें कॉल विधियों को लोड करने के बारे में एक गाइड है।

[C:\temp] 
PS:25 > notepad MyMathLib.cs 

(…) 

[C:\temp] 
PS:26 > csc /target:library MyMathLib.cs 
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42 
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727 
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved. 


[C:\temp] 
PS:27 > [Reflection.Assembly]::LoadFile(“c:\temp\MyMathLib.dll”) 

GAC Version  Location 
— ——-  ——– 
False v2.0.50727  c:\temp\MyMathLib.dll 



[C:\temp] 
PS:28 > [MyMathLib.Methods]::Sum(10, 2) 
12 

[C:\temp] 
PS:29 > $mathInstance = new-object MyMathLib.Methods 
Suggestion: An alias for New-Object is new 

[C:\temp] 
PS:30 > $mathInstance.Product(10, 2) 
20 
+2

मेरी तुलना में बहुत बेहतर लिंक-खोज। =) –

5

यहां देखें, शायद?

http://blog.usepowershell.com/2009/03/exploring-the-net-framework-with-powershell-static-members-part-4/

और आप का उपयोग कर

[Reflection.Assembly]::LoadFile(“c:\mysource\mylib.dll”) 

आप में असमर्थ या PowerShell का उपयोग करने को तैयार नहीं हैं, तो आप एक सांत्वना आवेदन के साथ अपने स्थिर विधि के लिए कॉल रैप करने के लिए की जरूरत है अपने खुद के विधानसभा लोड कर सकते हैं, जैसा कि davecoulter's answer

2

हां - लेकिन आपको Main() विधि के साथ एक प्रोग्राम होना होगा जो संदर्भ देता है कि .dll और इसे कॉल कर सकते हैं - कंसोल एप्लिकेशन में कहें।

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

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