首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为NuGet nuspec文件指定PackageID

为NuGet nuspec文件指定PackageID
EN

Stack Overflow用户
提问于 2019-12-18 23:59:02
回答 1查看 227关注 0票数 2

我正在编写一个部署应用程序来获取我的DLL,并为每个DLL创建.nuspec文件,将它们打包,然后推送到Artifactory。

尝试使用c#中的命令行来执行此操作。

我遇到的问题是DLL位于网络驱动器上,在文件位置调用nuget spec命令时会使用完整的文件路径作为PackageID,在尝试打包时会包含无效字符。

代码语言:javascript
复制
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();
}

这会导致

代码语言:javascript
复制
<?xml version="1.0"?>
<package >
  <metadata>
    <id>\\network-drive\Network-Folder\MyDLLs\Test.dll</id>
    <version>1.0.0</version>
    ....

如何将packageID指定为类似于My.TestDLL的内容?

我试着做一些像这样的事情

代码语言:javascript
复制
nuget spec My.TestDLL -AssemblyPath \\network-drive\Network-Folder\MyDLLs\Test.dll

但是不知道nuspec文件放到了哪里,因为它不在目录中。

EN

回答 1

Stack Overflow用户

发布于 2020-05-06 07:28:21

您正在创建要使用的新命令行,然后将命令传递给它。考虑打开一个新的命令窗口。它的默认位置是哪里?

如果您尚未在环境变量中存储NuGet (假设),则必须指定NuGet.exe的完整路径,或者将工作目录设置为包含NuGet可执行文件的文件夹。由于您没有这样做,因此命令窗口将使用默认位置来创建该.nuspec文件。

我将为ProcessStartInfo对象设置工作目录。设置工作目录时,您指定了希望NuGet在光盘上创建文件的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59395815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档