簡體   English   中英

Azure 管道 (DotNetCoreCLI@2) 包括 DLL 到 nuget

[英]Azure Pipeline (DotNetCoreCLI@2) include DLL into nuget

在將代碼庫/管道升級到 Do.net Core 的過程中。 一個項目在oldcode.dll文件中有一些 c++ 代碼需要包含。

我們舊的“打包”管道看起來像:

- 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

將項目升級到 Do.netcore 並使用此管道不會將oldcode.dll包含到 nuget 中

- task: DotNetCoreCLI@2
  inputs:
    command: 'pack'
    packagesToPack: '**/ProjectName.csproj'

我已經閱讀了 DotNetCore https://github.com/NuGet/Home/issues/3891中缺少的IncludeReferencedProjects function

這種情況最簡單的解決方法是什么? 我可以在push之前以某種方式將oldcode.dll中嗎?

更新----我試過這個:

  • 將 .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 package 與 do.net 核心一起使用,即使您通常不需要這樣做。

因此,手動創建一個文件,包含一個<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. packagesToPack參數中的csproj文件,但如果沒有,您可以使用自定義參數。

- 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 代理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM