【问题标题】:Folder/Directory Creation on Deployment Targets在部署目标上创建文件夹/目录
【发布时间】:2019-01-09 14:41:01
【问题描述】:

我正在使用 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());
        }
    }
}

【问题讨论】:

  • 您是否尝试过使用社区步骤来创建文件夹?
  • 社区步骤是什么意思?
  • 我能弄明白。我只应该在 Main 方法中添加信息,而不是写出一个类本身。
  • 好东西。您可以添加自己的答案来解释这一点,然后将其标记为接受的答案。

标签: c# octopus-deploy


【解决方案1】:

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

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

你可以通过 catch 块中的异常类型知道这一点。 如果不成功,Directory.CreateDirectory 会抛出以下异常:

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

  • UnauthorizedAccessException - 调用者没有所需的权限。

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

  • ArgumentNullException - 路径为空。

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      相关资源
      最近更新 更多