【发布时间】:2019-12-18 15:59:02
【问题描述】:
我正在编写一个部署应用程序来获取我的 DLL 并为每个文件创建 .nuspec 文件,将它们打包,然后推送到 Artifactory。
尝试在 c# 中使用命令行来执行此操作。
我遇到的问题是 DLL 位于网络驱动器上,并且在文件位置调用 nuget spec 命令使用完整文件路径作为 PackageID,其中在尝试打包时包含无效字符。
using (Process myProcess = new Process())
{
var file = @"\\network-drive\Network-Folder\MyDLLs\Test.dll";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "CMD.exe";
myProcess.StartInfo.Arguments = string.Format("/c nuget spec \"{0}\"", file);
myProcess.StartInfo.CreateNoWindow = false;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess.Start();
myProcess.WaitForExit();
}
这会导致
<?xml version="1.0"?>
<package >
<metadata>
<id>\\network-drive\Network-Folder\MyDLLs\Test.dll</id>
<version>1.0.0</version>
....
如何将 packageID 指定为 My.TestDLL 之类的东西?
我尝试做类似的事情
nuget spec My.TestDLL -AssemblyPath \\network-drive\Network-Folder\MyDLLs\Test.dll
但是不知道 nuspec 文件去了哪里,因为它不在目录中。
【问题讨论】:
标签: c# nuget nuspec nuget-spec