首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure管道(DotNetCoreCLI@2)将DLL包含到nuget中

Azure管道(DotNetCoreCLI@2)将DLL包含到nuget中
EN

Stack Overflow用户
提问于 2021-10-06 07:52:08
回答 1查看 485关注 0票数 0

在将代码基/管道升级到Dotnet Core的过程中。一个项目在一个需要包含的c++文件中有一些oldcode.dll代码。

我们以前的“打包”管道看起来像是:

代码语言:javascript
复制
- task: NuGetCommand@2
  inputs:
    command: 'pack'
    packagesToPack: '**/ProjectName.csproj'
    buildProperties: '-IncludeReferencedProjects'

生成具有以下文件夹结构的nuget:

代码语言:javascript
复制
>build
--->oldcode.dll
--->project.targets

>lib
--->net472
------>project.dll
------>project.pdb
------>project.xml

将项目升级到Dotnetcore并使用此管道不包括oldcode.dll到nuget

代码语言:javascript
复制
- task: DotNetCoreCLI@2
  inputs:
    command: 'pack'
    packagesToPack: '**/ProjectName.csproj'

我读过关于IncludeReferencedProjects函数在DotNetCore https://github.com/NuGet/Home/issues/3891中缺失的文章。

这个案子最简单的解决办法是什么?在去push之前,我能把push拷贝到nuget吗?

更新-我试过了:

  • 将.nuspec直接设置为packagesToPack无效。

并给出了一个错误:

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

代码语言:javascript
复制
dotnet pack <path to .csproj file> -p:NuspecFile=<path to nuspec file> -p:NuspecProperties=<> -p:NuspecBasePath=<Base path> 
EN

回答 1

Stack Overflow用户

发布于 2021-10-06 08:31:23

您仍然可以使用带有dotnet核心的.nuspec包,即使您通常不需要这样做。

因此,手动创建一个文件,包括一个<file>元素,然后调用pack,而不是项目:

代码语言:javascript
复制
<?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文件,但如果不能,则可以使用自定义参数。

代码语言:javascript
复制
- task: DotNetCoreCLI@2
  inputs:
    command: 'custom'
    custom: 'pack path/to/Myproject.nuspec'

路径应该相对于存储库根,因此

代码语言:javascript
复制
Root
|
|__MySolutionFolder
   |
   |__MyProject
      |
      |__ProjectName.csproj
      |__ProjectName.nuspec

应该是./MySolutionFolder/MyProject/ProjectName.nuspec的相对路径

使用正斜杠的IIRC总是安全的,但是反斜杠只适用于Windows代理

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

https://stackoverflow.com/questions/69461764

复制
相关文章

相似问题

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