c# - 在 C# 中指定路径时如何返回一个级别?

标签 c# path wix

我想以编程方式在 Visual Studio 的“扩展”文件夹中安装一个文件夹。我能得到的最接近的是使用 VS100COMNTOOLS 环境变量。我想要做的是从“工具”文件夹返回一级,进入 IDE/Extensions,比如 VS100COMNTOOLS..\IDE\Extensions。这是我的代码:

namespace TemplatesCustomAction
{
    public class CustomActions
    {
        [CustomAction]
        public static ActionResult CustomAction1(Session session)
        {

            var vspath = Environment.GetEnvironmentVariable("VS100COMNTOOLS");

            session["VSINSTALLATIONFOLDER"] = string.Format(@"{0}\..\IDE\Extensions", vspath);



            return ActionResult.Success;
        }
    }
}

最佳答案

使用Path.GetFullPath :

var pathWithParent = string.Format(@"{0}\..\IDE\Extensions", vspath);
session["VSINSTALLATIONFOLDER"] = Path.GetFullPath(pathWithParent);

尽管我也更愿意使用 Path.Combine:

var pathWithParent = Path.Combine(vspath, @"\..\IDE\Extensions");

关于c# - 在 C# 中指定路径时如何返回一个级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13843794/

相关文章:

c# - wix - 如何删除非空文件夹

c# - 设计表单以在 Windows CE 上处理不同的分辨率和宽高比

c# - 使用连接的扫描仪的最简单方法是什么?

c# - 我可以在不支付 Unity Multiplayer 服务的情况下使用 Unity 网络 HLAPI 吗?

javascript - 从 div 获取背景图像 src 并将其设置为图像的 src

algorithm - 是否有一种算法可以在有向有根树(树状结构)中找到最小成本路径?

wix - 安排从 WiX 延迟自定义操作重新启动

c# - 在 Windows 10 中部署 Windows Phone 8.1 应用程序时找不到 IpOverUsbSvc

java - 将 Windows 绝对路径转换为 ​​Java

iis - 使用 WiX IIS 安装程序中的虚拟目录的名称覆盖引用目录的名称