gpt4 book ai didi

c# - T4 获取当前解的执行文件名

转载 作者:行者123 更新时间:2023-11-30 16:45:44 25 4
gpt4 key购买 nike

我正在使用 T4 文本模板生成一个 C# 类以用于任何 C# 项目。但是,现在我需要知道目标项目执行文件名,然后知道配置文件名和...

对于这项工作,我尝试了吹代码,但我认为对所有项目来说都不稳定。

<#@ template language="C#" debug="false" hostspecific="true" #>
<#@ assembly name="EnvDTE" #>
<#@ import namespace="EnvDTE" #>
<#@ output extension=".cs" #>

<#
IServiceProvider serviceProvider = (IServiceProvider)this.Host;
var dte = serviceProvider.GetService(typeof(DTE)) as DTE;
var solutionsPath = Host.ResolveAssemblyReference("$(SolutionDir)");
var projectItem = dte.Solution.FindProjectItem(Host.TemplateFile);
var vsProject = projectItem.ContainingProject;
#>

1.<#= System.IO.Path.GetFileName(dte.Solution.FullName) #>
2.<#= solutionsPath #>
3.<#= this.Host.ResolveParameterValue("-", "-", "projects") #>
4.<#= dte.Solution.FullName #>
5.<#= vsProject.Name #>

结果是:

1.ProjectName.sln
2.D:\MyProject\SolutionDirectory\src\
3.ProjectName1|ProjectName2|ProjectName3
4.D:\MyProject\SolutionDirectory\src\ProjectName.sln
5.ProjectName

请帮我找到一个稳定安全的方法来获取当前项目执行文件名,例如:projectname.exe$(TargetFileName)

最佳答案

试试这个:

ProjectItem projItem = dte.Solution.FindProjectItem(Host.TemplateFile);
Project prj = projItem.ContainingProject;
string outputFileName = prj.Properties.Item("OutputFileName").Value.ToString();

关于c# - T4 获取当前解的执行文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41545698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com