c++ - 在程序集名称中创建具有特殊字符的 NuGet 包

标签 c++ package nuget nuspec invalid-characters

我有一个包含 C++ 代码的项目,它创建了一个名称如下的程序集:“C++Adapter.dll”。由于程序集名称中的“++”,我无法创建正确的 NuGet 包。当我运行 nuget pack 命令行时,它会创建一个包,但程序集名称以某种方式发生了变化,看起来像这样:“C%2B%%2B%Adapter.dll”。有解决办法吗?

这是我的 .nuspec 文件的样子:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
  </metadata>
  <files>
    <file src="..\bin\*.dll" exclude="**\*.pdb;**\*.dll.metagen" target="MyFolder" />
  </files>
</package>

最佳答案

此线程向我指出了一个解决方法: nuget encodes the blank spaces in names of files

就我而言,我使用 7-Zip 解压 NuGet 包。那是文件名弄乱的时候。我运行了下面的命令并且它起作用了(我使用 NuGet.exe v4.4.1 进行了测试)。

nuget.exe install MyPackage -OutputDirectory C:\test

此命令的作用是下载包并将其解压缩到输出目录中。

关于c++ - 在程序集名称中创建具有特殊字符的 NuGet 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46458256/

相关文章:

c++ - 在 C++ 中使用指针

c++ - C/C++ 中十六进制转义码的位数

c++ - 传递多维数组给出和错误

c++ - 如何在执行回调时隐藏顶级 GTK 窗口

c# - 管理存在于多个解决方案中的 C# 项目的 Nuget 包

css - 在 Atom 包中,如何在语法中设置模式样式?

java - 读取特定包中文件的内容

wolfram-mathematica - 在 Mathematica 中构建具有多个包和引用的应用程序包

visual-studio - 有条件地包含 NuGet 包

c# - 安装 Nuget 包错误 "The path is not of a legal form"