जेम्स बंद की टिप्पणी के आधार पर, मैं अपने फ़ाइल पथ डीबगिंग के लिए निम्न टेम्पलेट लिखने में सक्षम था:
<#@ template language="C#" debug="true" hostspecific="true"#>
<#@ include file="EF.Utility.CS.ttinclude"#><#@
output extension=".txt"#><#
/////////Some standard-ish settings, continue reading on
CodeGenerationTools code = new CodeGenerationTools(this);
MetadataLoader loader = new MetadataLoader(this);
CodeRegion region = new CodeRegion(this, 1);
MetadataTools ef = new MetadataTools(this);
/////////Below are the relevant sections I used for debugging
string solutionsPath = Host.ResolveAssemblyReference("$(SolutionDir)");//Gives you the location of MySolution.sln
string edmxFile = solutionsPath + "MyDAL/MyDAL/MyModel.edmx"; //Note - VS projects usually have a subdir with the same name as the sln, hence the repetition for MyDAL
#>
Does this file exist?
<#
//
if (File.Exists(edmxFile))
{
//Continue.
#>
Yes
<#
}
else
{
#>
No
<#
}
#>
यह एक .txt फ़ाइल उत्पन्न होगा और बहुत जल्दी की मदद से आप डिबग कि क्या आपके पथ सकता है स्थित हो या नहीं।
एक साइड नोट के रूप में, जहां एक रिश्तेदार डायर पथ (उदाहरण के लिए ../App.config
) था, जहां पाया जा सकता था, मैंने पाया कि यह प्रत्येक निर्देशिका स्तर पर फ़ाइल (जैसे test1.txt
) डालने में मदद करता है, जैसा कि मैंने सोचा था बाहर Host.ResolvePath
मेरे सेटअप के साथ वर्तमान असेंबली के बाहर देखने में सक्षम नहीं था। यह चेतावनी बहुत तेज़ी से भ्रमित हो सकती है क्योंकि ../../App.config
MySolution\App.config
को हल कर सकता है, लेकिन ../../MyDal/README.txt
हल नहीं होगा (इसलिए फ़ाइल नहीं मिलेगी), भले ही यह सही पथ हो। उपर्युक्त कोड इस समस्या को तब तक अस्वीकार कर रहा है जब तक मैं देख सकता हूं। How to use the poco entity generator
स्रोत
2013-01-13 13:50:00
पथ द्वारा डीएलएल का संदर्भ देने से समस्या का सामना करना पड़ रहा है। एक देव बॉक्स में परियोजना एक ही स्थान पर हो सकती है जबकि दूसरे व्यक्ति के पास यह दूसरी जगह है। अगर मैं स्थान ग्रहण कर सकता हूं, तो मुझे टेम्पलेट को निर्धारित करने की आवश्यकता नहीं होगी - मैं बस इसे हार्डकोड कर सकता हूं या बिल्ड स्क्रिप्ट के साथ इंजेक्ट कर सकता हूं। मॉडल पर काम करना कोई समस्या नहीं है - अगर मैं पथ को हार्डकोड करता हूं तो मेरी स्क्रिप्ट पूरी तरह से चलती है। मुझे बस उस पथ को गतिशील रूप से निर्धारित करने के लिए एक तरीका चाहिए। Host.Resolve का उपयोग करना ठीक है अगर मुझे टेम्पलेट के पथ की आवश्यकता है - मुझे केवल माईडल असेंबली के स्रोत के लिए पथ को समझने की आवश्यकता है। – Jaxidian
होस्ट। रेसोल्वपाथ ("।") काम करता है। :) – Jaxidian