在将代码基/管道升级到Dotnet Core的过程中。一个项目在一个需要包含的c++文件中有一些oldcode.dll代码。
我们以前的“打包”管道看起来像是:
- 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'我读过关于IncludeReferencedProjects函数在DotNetCore https://github.com/NuGet/Home/issues/3891中缺失的文章。
这个案子最简单的解决办法是什么?在去push之前,我能把push拷贝到nuget吗?
更新-我试过了:
并给出了一个错误:
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> 发布于 2021-10-06 08:31:23
您仍然可以使用带有dotnet核心的.nuspec包,即使您通常不需要这样做。
因此,手动创建一个文件,包括一个<file>元素,然后调用pack,而不是项目:
<?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代理
https://stackoverflow.com/questions/69461764
复制相似问题