正在将代码库/管道升级到 Dotnet Core。
项目的 oldcode.dll
文件中有一些需要包含的 C++ 代码。
我们旧的“pack”管道看起来像:
- task: NuGetCommand@2
inputs:
command: 'pack'
packagesToPack: '**/ProjectName.csproj'
buildProperties: '-IncludeReferencedProjects'
生成了具有以下文件夹结构的 nuget:
>build
--->oldcode.dll
--->project.targets
>lib
--->net472
------>project.dll
------>project.pdb
------>project.xml
将项目升级到 Dotnetcore 并使用此管道不会将 oldcode.dll
包含到 nuget
- task: DotNetCoreCLI@2
inputs:
command: 'pack'
packagesToPack: '**/ProjectName.csproj'
我已阅读有关 DotNetCore 中缺少的 IncludeReferencedProjects
函数的信息
https://github.com/NuGet/Home/issues/3891
对于这种情况,最简单的解决方法是什么?
我可以在push
之前以某种方式将oldcode.dll
复制到nuget中吗?
更新---- 我已经尝试过:
- 将 .nuspec 直接设置到packagesToPack 中不起作用。
并给出错误:
task: DotNetCoreCLI@2
inputs:
command: 'custom'
custom: 'pack **/NameOfFile.nuspec'
##[error]Error: The process 'C:\Program Files\dotnet\dotnet.exe' failed with exit code 1
是我走错了路吗?
如果我能弄清楚如何正确完成路径,这可能就是我需要做的 https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec
dotnet pack <path to .csproj file> -p:NuspecFile=<path to nuspec file> -p:NuspecProperties=<> -p:NuspecBasePath=<Base path>
最佳答案
即使您通常不需要,您仍然可以将 .nuspec
包与 dotnet core 一起使用。
因此,手动创建一个文件,包含 <file>
元素和调用包,而不是项目:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Required elements-->
<id></id>
<version></version>
<description></description>
<authors></authors>
<!-- Optional elements -->
<!-- ... -->
</metadata>
<!-- Optional 'files' node -->
<files>
<file src="oldcode.dll" target="lib" />
</files>
</package>
您也许可以将 .nuspec.
文件替换为 csproj
参数中的 packagesToPack
文件,但如果不能,您可以使用自定义参数。
- task: DotNetCoreCLI@2
inputs:
command: 'custom'
custom: 'pack path/to/Myproject.nuspec'
路径应该相对于存储库根目录,因此
Root
|
|__MySolutionFolder
|
|__MyProject
|
|__ProjectName.csproj
|__ProjectName.nuspec
应该是 ./MySolutionFolder/MyProject/ProjectName.nuspec 的相对路径
使用正斜杠的 IIRC 始终是安全的,但反斜杠仅适用于 Windows 代理
关于c# - Azure Pipeline (DotNetCoreCLI@2) 将 DLL 包含到 nuget 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69461764/