我正在使用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());
}
}
}
答案 0 :(得分:0)
首先,代码中可能存在许多可能的问题。 理想情况下,发布时,请发布例外的详细信息。
我怀疑两件事: -您的父目录不存在,这就是您的创建目录失败的原因。 -该代码无权在现有路径中创建目录。
您可以通过catch块中获取的异常类型知道这一点。 如果失败,Directory.CreateDirectory将引发以下异常:
IOException -路径指定的目录是一个文件。
UnauthorizedAccessException -呼叫者没有所需的权限。
ArgumentException -路径是长度为零的字符串,仅包含空格,或包含一个或多个无效字符。您可以使用GetInvalidPathChars()方法查询无效字符。 OR路径仅以冒号(:)开头或包含。
ArgumentNullException -路径为空。
PathTooLongException -指定的路径,文件名或两者都超过了系统定义的最大长度。
DirectoryNotFoundException -指定的路径无效(例如,它在未映射的驱动器上)。
NotSupportedException -路径包含一个不属于驱动器标签(“ C:\”)的冒号(:)。
注意:CreateDirectory引发的异常的详细信息取自documentation at MSDN。
答案 1 :(得分:0)
Octopus Deploy仅允许接受脚本文件。我不是 应该自己创建一个类,但只包含信息 里面的主要方法。可以使用OD的脚本添加功能 模块。