2013-07-25 6 views
7

मेरे पास विजुअल स्टूडियो में एक वेबसाइट प्रोजेक्ट है और मैं साइट की बिन निर्देशिका से कुछ असेंबली को संदर्भित करने का प्रयास कर रहा हूं।टी 4 असेंबली निर्देश?

अब तक जड़ें पथ केवल एक ही है कि काम करता है:

<#@ Assembly Name="C:\Code\Web Solution\Website\bin\My.dll" /> 

अन्य लोगों को MSBuild वैरिएबल का उपयोग उल्लेख किया है, लेकिन यह मेरे लिए काम नहीं करता:

<#@ Assembly Name="$(SolutionDir)Website\bin\My.dll" /> 

और मैं मीटर यकीन है कि संबंधित पथ सिर्फ फ्लैट से बाहर काम नहीं करते (मेरे टीटी फ़ाइल App_Code में एक सबफ़ोल्डर में है):

<#@ Assembly Name="..\..\bin\My.dll" /> 

रूट पथ का उपयोग किए बिना, क्या यह कार्य किसी वेबसाइट प्रोजेक्ट के संदर्भ में करने का कोई तरीका है?

उत्तर

0

मैं जब संबंधित पथ निर्धारित करते समय आपको envDTE (Example here का उपयोग कर परियोजना नेविगेट करने के लिए बिन निर्देशिका को खोजने में इसे पा सकते हैं लगता है बैकस्लैश के बजाय

+0

यह एक विधानसभा संदर्भ के लिए है कोड में उपयोग के लिए नहीं

लेकिन अगर आप एक ज्ञात पथ से संबंधित पथ का उपयोग कर सकते हैं। –

0

का उपयोग करके देखें स्लैश:।

<#@ Assembly Name="../../bin/My.dll" /> 
+0

मैं इसे एक शॉट दूंगा और वापस रिपोर्ट करूंगा ... –

+0

यह काम नहीं किया। –

+0

@ जॉन बुब्रिस्की यह अजीब बात है क्योंकि हम बैकस्लाश के साथ सापेक्ष पथ का उपयोग कर रहे हैं और यह काम कर रहा है। शायद, एक असेंबली नोड के अंदर यह इस तरह से काम नहीं कर रहा है। – daryal

1

dll मौजूद है

टी -4 चलाने पर? मैं MVC 4 आवेदन टेम्पलेट के साथ MvcApplication1 पैदा करते हैं।

App_Code निर्देशिका बनाने और टीटी बनाएँ।

< # @ विधानसभा नाम = "$ (ProjectDir) \ बिन \ MvcApplication1.dll" #>

परियोजना का निर्माण और चलाने यह

trasnform सफल लेकिन निर्माण को साफ करने और चलाने के यह परिणाम असफल ।

क्योंकि, स्वच्छ आउटपुट डीएलएल को हटा देता है, डीएल निर्दिष्ट पथ पर मौजूद नहीं है।

+0

वैसे यह एक वेबसाइट प्रोजेक्ट है ... इसलिए यह विशेष डीएलएल हमेशा बिन में है, और कभी भी साफ नहीं होता है। –

+0

अधिक विशिष्ट होने के लिए, परियोजना एक "वेबसाइट प्रोजेक्ट" है, इसलिए मुझे लगता है कि यही कारण है कि परियोजना/समाधान निर्देशिका के लिए उन मैक्रोज़/चर काम नहीं करते हैं। –

+0

ओह क्षमा करें, मैं अब वेबसाइट प्रोजेक्ट के साथ परीक्षण कर रहा हूं। लेकिन मुझे बिन पर डीएल नहीं मिला। रेपो चरण वेबसाइट प्रोजेक्ट बनाएं, बिन निर्देशिका और App_Code निर्देशिका जोड़ें, App_Code पर Class1.cs बनाएं, – kazuk

5

टी 4 टेम्पलेट्स में असेंबली संदर्भों के लिए जीएसी या पूर्ण पथ आवश्यक हैं।

जैसे::

$(SolutionDir)\..\..\packages\Pluralizer.0.3.0.1\lib\net40\Pluralize.dll 
संबंधित मुद्दे