在部署目标上创建文件夹/目录

时间:2019-01-09 14:41:01

标签: c# octopus-deploy

我正在使用Octopus Deploy将小的脚本部署到目标PC,但是该脚本未在目标计算机上生成新文件夹。我的代码有问题还是部署设置有问题?

using System;
using System.IO;

class FolderCreation
{
    public static void Main()
    {
        string _basePath = @"c:\OD_Test";
        try
        {
            string dateFolder = DateTime.Now.ToString("yyyy-MM-dd");
            string path = $"{_basePath}\\{dateFolder}";

            System.IO.Directory.CreateDirectory(path);
        }
        catch (Exception ex)
        {
             Console.WriteLine("The process failed: {0}", ex.ToString());
        }
    }
}

2 个答案:

答案 0 :(得分:0)

首先,代码中可能存在许多可能的问题。 理想情况下,发布时,请发布例外的详细信息。

我怀疑两件事: -您的父目录不存在,这就是您的创建目录失败的原因。 -该代码无权在现有路径中创建目录。

您可以通过catch块中获取的异常类型知道这一点。 如果失败,Directory.CreateDirectory将引发以下异常:

  • IOException -路径指定的目录是一个文件。

  • UnauthorizedAccessException -呼叫者没有所需的权限。

  • ArgumentException -路径是长度为零的字符串,仅包含空格,或包含一个或多个无效字符。您可以使用GetInvalidPathChars()方法查询无效字符。 OR路径仅以冒号(:)开头或包含。

  • ArgumentNullException -路径为空。

  • PathTooLongException -指定的路径,文件名或两者都超过了系统定义的最大长度。

  • DirectoryNotFoundException -指定的路径无效(例如,它在未映射的驱动器上)。

  • NotSupportedException -路径包含一个不属于驱动器标签(“ C:\”)的冒号(:)。

注意:CreateDirectory引发的异常的详细信息取自documentation at MSDN

答案 1 :(得分:0)

Octopus Deploy仅允许接受脚本文件。我不是 应该自己创建一个类,但只包含信息 里面的主要方法。可以使用OD的脚本添加功能 模块。