dotnetcore pack和nuget push似乎没有产生nupkg

时间:2017-10-25 07:36:43

标签: nuget .net-core gitlab-ci

我想创建一个仅包含资源(图像,脚本......)的nuget包。

所以我创建了一个新的空asp.core项目。

项目看起来像这样

MyProject
--.Nuget
-----MyProject.Nuspec
--Content
----Img
------myimage.gif
--Script
----myscript.js
--.gitlab-ci.yml
--MyProject.csproj
--MyProject.sln

在这个项目中,我添加了一个带有.nuspec文件的.nuget文件夹

这是内容

<?xml version="1.0"?>
 <package>
   <metadata>
     <id>myProject</id>
     <version>$version$</version>
     <authors>MyName</authors>
     <owners>MyName</owners>
     <requireLicenseAcceptance>false</requireLicenseAcceptance>
     <description>myProject</description>
     <releaseNotes>First implementation with nuget</releaseNotes>
     <copyright>Copyright © ME</copyright>
     <dependencies>
      <dependency id="jQuery" version="[3.2.1]" />
      <dependency id="bootbox" version="[4.3.0]" />
     </dependencies>
   </metadata>
  <files>
    <file src="..\Content\img\myimage.gif" target="content\Content\img" />
    <file src="..\Script\*.js" target="content\Scripts" />
  </files>
 </package>

这是yml的内容

image : microsoft/dotnet:latest

before_script:
  - 'dotnet restore myProject.sln'

stages:
  - build
  - test
  - deploy

job1:
 stage: build
 script:
  - 'dotnet msbuild MyProject.sln /t:Clean,ReBuild /p:Configuration=Debug;Platform="Any CPU"'
  - 'dotnet msbuild MyProject.sln /t:ReBuild /p:Configuration=Release;Platform="Any CPU"'
  - 'dotnet pack "MyProject.csproj" /p:NuspecFile=".Nuget/*.nuspec" -v n --include-source --include-symbols --no-build'
  - 'dotnet nuget push *.nupkg -k myApi -s https://www.myget.org/F/myfeed/api/v2/package'
 only:
   - master

构建似乎成功,但每次在nuget push上崩溃

error: File does not exist (*.nupkg).

我错过了什么,但我找不到问题。我怎么能得到我的nupkg?

欢迎任何帮助

1 个答案:

答案 0 :(得分:1)

  1. 一个小技巧:你可以改变输出的详细程度和dotnet pack&#39;使用-v开关。
  2. 您无需使用密钥&#39; - include-source --include-symbols&#39;如果您只需要在包中添加js和图像。
  3. NuspecFile不接受&#39; *&#39;。
  4. 所以这是允许我创建nuget的字符串:

    dotnet pack "MyProject.csproj" /p:NuspecFile=".Nuget/MyProject.Nuspec" -v d --no-build -c Release
    

    请尝试更改YML文件以便使用它。