gpt4 book ai didi

visual-studio - 通过DTE获取项目TargetPath的宏值

转载 作者:行者123 更新时间:2023-12-04 03:33:53 25 4
gpt4 key购买 nike

我需要通过DTE获取项目程序集的绝对输出路径。我尝试使用 this method 来做到这一点,我将在其中访问 OutputPath 属性,将其与程序集名称组合,但这会生成相对路径,例如:

..\..\Output\AnyCPU\Debug\MyAssembly.dll

使用 Path.GetFullPath 对我不利,因为我的项目可能从另一个位置执行。

我注意到 $(TargetPath) 宏(在项目属性的“构建事件”选项卡中)包含程序集的完整路径。如何从 DTE 以编程方式访问此值?

实际问题是——如何获取项目的绝对输出路径?

最佳答案

我不知道如何以编程方式访问“$(TargetPath)”,我同意这可能是最好的解决方案。

但是,您提到的方法应该仍然可行,因为 OutputPath 属性是相对于项目文件所在的文件夹的。 (如果我遗漏了一些不是这种情况的情况,请告诉我?)

所以你可以做类似的事情:

      private static string GetProjectExecutable(Project startupProject, Configuration config)
{
string projectFolder = Path.GetDirectoryName(startupProject.FileName);
string outputPath = (string)config.Properties.Item("OutputPath").Value;
string assemblyFileName = (string)startupProject.Properties.Item("AssemblyName").Value + ".exe";
return Path.Combine(new[] {
projectFolder,
outputPath,
assemblyFileName
});
}

(此处使用的 Path.Combine 重载仅在 .NET 4.0 中可用,但您始终可以向后移植它)

关于visual-studio - 通过DTE获取项目TargetPath的宏值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486593/

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