【发布时间】:2015-11-02 06:29:12
【问题描述】:
我的解决方案中有一个名为“XMLClassGenerator”的类库,位于名为“HelperModules”的文件夹(Visual Studio 解决方案文件夹)内。
“XMLClassGenerator”模块,它有一个T4 Template,它扫描整个解决方案(我在不同的解决方案文件夹中有大约 23 个类库)以查找以“config.xml”结尾的文件。 xml”并生成类来操作 XML 数据,而无需硬编码键。
疑似T4模板代码
var hostServiceProvider = (IServiceProvider)this.Host;
var dte = (DTE)hostServiceProvider.GetService(typeof(DTE));
foreach (Project project in dte.Solution)
{
var items = ((Project)project).ProjectItems.GetEnumerator();;
while (items.MoveNext())
{
var item = (ProjectItem)items.Current;
//Recursion to get all ProjectItems
projectItems.Add(GetFiles(item));
}
}
string GetFiles(ProjectItem item)
{
var itemFullPath = string.Empty;
int g = item.FileCount;
if (item.FileCount > 0)
itemFullPath = item.FileNames[1];
....
....
}
item.FileNames[1] 在我当前的设置中返回 null。
但如果我将 XMLClassGenerator 模块移动到解决方案根目录一切正常。
当 XMLClassGenerator 模块位于解决方案文件夹中时,如何获得相同的行为。
【问题讨论】:
-
不是在我的机器上重现,VS 2015。你有另一台机器要验证吗?
-
我现在没有 vs2015 来测试它,我正在使用 vs 2013 和 Microsoft.VisualStudio.Shell.Interop.dll 是 7.1060.71
标签: .net visual-studio visual-studio-2013 t4