2012-03-30 14 views
9

एक इंस्टॉलर जिसे मैंने वाईएक्स के साथ बनाया है, SystemFolder वैरिएबल का उपयोग करके एक डीएलएल स्थापित करता है, साथ ही सी # ऐप को दूसरे फ़ोल्डर में स्थापित करता है। मैं सीधे ऐप से डीएलएल का संदर्भ देना चाहता हूं। SystemFolder कहां है यह जानने के लिए मुझे रजिस्ट्री कुंजियों को देखने की ज़रूरत है?"सिस्टमफोल्डर" WIX और C#

उत्तर

13

नहीं, आपको रजिस्ट्री से पूछताछ करने की आवश्यकता नहीं है। विंडोज इंस्टालर में अंतर्निहित गुणों की एक श्रृंखला है जो स्वचालित रूप से सिस्टमफ़ोल्डर जैसे विशेष प्रसिद्ध स्थानों को हल करती है।

अधिक सामान्य जानकारी के लिए System Folder Properties देखें। WiX के लिए, बस TARGETDIR निर्देशिका तत्व का एक सीधा बच्चे के रूप में एक निर्देशिका तत्व बनाएं:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="SystemFolder" Name="SystemFolder" /> 
</Directory> 

आप पहले से ही यह जानता हूँ और पता करने के लिए सी # से DLL संदर्भित करने के लिए कैसे चाहते हैं, तो मैं SystemFolder खोज पथ में है मुझे यकीन नहीं है कि आपको क्यों करना होगा। अगर यह मैं था, तो मैं सी # को x86 के रूप में संकलित करता हूं (AnyCPU कुछ हद तक प्रचलित है) और उपयोग करें:

string myDllPath = Path.Combine(System.Environment.SystemDirectory, "my.dll");