- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 GitLab,需要创建一个 .gitlab-ci.yml
脚本来为生成 nuGet 包的项目运行持续集成管道。
我在寻找可靠的文档来回答这个问题时遇到严重问题:
我应该使用 dotnet pack
还是 nuget pack
?
nuget.exe 不能作为命令使用,除非我的 CI 脚本下载它(我使用的是 GitLab,所以我必须在 .gitlab-ci.yml
上添加一些内容才能执行此操作)。我的理解是 dotnet
隐式使用 nuget,因此不需要直接使用 nuget。
dotnet pack 命令的问题是我无法引用 nuspec 文件,它只是被忽略。
我尝试过
dotnet pack 'MyProject.Nuget/MyProject.Nuget.csproj' /p:NuspecFile='MyProject.Nuget/MyProject.NuGet.nuspec' /p:PackageVersion=$VERSION --output nupkgs
任何有关最新版本(dotnet --version
是 2.1.401)的正确方法的可靠文档将不胜感激,因为我无法创建包含多个 dll 的有效 nuGet 包。
更新:另一种选择是:
nuget pack ./*NuGet/*.nuspec -Version $VERSION -OutputDirectory pepe -Prop Configuration=Release -NoDefaultExcludes -Verbosity detailed
最佳答案
我现在成功地从 GitLab 的 CI/CD 为我的 dotnet 核心应用程序构建了 nuGet 包。
需要考虑的事项:
\
窗口风格。我需要将它们更改为 linux 风格 /
。确保您的文件 src 部分引用存在于指定路径的 dll 和 pdb,否则在创建 nuget 时会出现异常,因为它找不到任何内容。所以我的 nuspec 现在看起来像这样:<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>ToolBelt.Application</id>
<version>1.0.0</version>
<authors>TUI</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Shared Contracts and Model for the Application layer</description>
<projectUrl>https://gitlab.tuiwestern.eu/SalesDistribution/_common-packages/ToolBelt.Application</projectUrl>
</metadata>
<files>
<file src="bin/*/netstandard2.0/ToolBelt.Application.Model.dll" target="lib/netstandard2.0" />
<file src="bin/*/netstandard2.0/ToolBelt.Application.Model.pdb" target="lib/netstandard2.0" />
<file src="bin/*/netstandard2.0/ToolBelt.Application.Contracts.dll" target="lib/netstandard2.0" />
<file src="bin/*/netstandard2.0/ToolBelt.Application.Contracts.pdb" target="lib/netstandard2.0" />
</files>
</package>
.gitlab-ci.yml
其中包含构建、运行生成 nuget 并将其推送到 nuget 存储库(在我的情况下是在 Artifactory 中)的所有步骤。示例:#Stages
stages:
- ci
- codequality
- build
- publish
#Global variables
variables:
GIT_STRATEGY: $STRATEGY
BUILD_NUMBER: $CI_PIPELINE_ID
#Jobs
ci:
image: ocp-golden-images.artifactory.mycompany.eu/gitlab-runner-nuget-dotnet-core:latest
stage: ci
script:
- export VERSION=$(echo $(date +"%Y.%-m%d").$CI_PIPELINE_ID)
- export NUGET_PACKAGE_FOLDER=nupkgs
- dotnet build --configuration Release
- dotnet vstest ./*Tests/bin/Release/**/*Tests.dll
- mkdir $NUGET_PACKAGE_FOLDER
- nuget pack ./*NuGet/*.nuspec -Version $VERSION -OutputDirectory $NUGET_PACKAGE_FOLDER -Prop Configuration=Release -NoDefaultExcludes -Verbosity detailed
- cd $NUGET_PACKAGE_FOLDER
- dotnet nuget push *.$VERSION.nupkg -s https://artifactory.mycompany.eu/artifactory/api/nuget/MyRepo
因此,这些是构建具有如下结构的项目所需的所有命令:
myApp
-ToolBelt.Application.Nuget
--ToolBelt.Application.Nuget.nuspec
-ToolBelt.Application.Contracts
-ToolBelt.Application.Model
-ToolBelt.Application.Model.UnitTests
其中包含 nuspec 的项目(例如: ToolBelt.Application.Nuget
)必须依赖于需要包含在包中的每个项目(例如: ToolBelt.Application.Contracts
和 ToolBelt.Application.Model
)
关于.net-core - gitlab CI 上的 dotnet pack 或 nuget pack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52271134/
我在运行 git gc --prune=now 并得到结果 Counting objects: 100% (619263/619263), done. Delta compression using
我想获取某个类中的所有链接。 HTML 的一个例子是 ES M3 E-mini S&P500 June 2013
我正在 32 位 ARM mcu(Atmel SAM4SD32C,Cortex-M4/ARMv7E-M 部件)上实现二进制日志记录系统,并且正在设计我的数据结构。我的目标是将日志格式描述为一个压缩结构
以下测试代码: [Test] public void PossibleHtmlAgilityPackBug() { const string html = @""; var doc =
如何利用 D3 圆包布局来得到类似这样的图表: (即使有更细长的椭圆)? 这种图表样式的关键应用是更容易放置标签。 这是 jsfiddle这演示了我为其他目的制作的圆包,但我想对于任何想要试验和测试涉
在 C 语言中,编译器将按照声明的顺序排列结构成员,并在成员之间或最后一个成员之后插入可能的填充字节,以确保每个成员都正确对齐。 gcc 提供了一个语言扩展,__attribute__((packed
在 C 语言中,编译器将按照声明的顺序排列结构成员,并在成员之间或最后一个成员之后插入可能的填充字节,以确保每个成员都正确对齐。 gcc 提供了一个语言扩展,__attribute__((packed
在我正在处理的 WPF 应用程序中尝试使用合并的 ResourceDictionaries 解决问题时,我遇到了这个奇怪的问题。 我在外部 DLL(“通用”)中定义了自定义控件(TextButton、
在使用 webpack、webpacker gem 和 Rails 5.1 时,我注意到第一次运行 rspec 会生成 public/packs 和 public/packs-test 。 这些目录是
给定一个 HTML 文档,我想识别文档中的所有数字并在数字周围添加自定义标签。现在,我使用以下内容: HtmlNodeCollection bodyNode = htmlDoc.DocumentNod
我正在尝试使用 #pragma pack (n) 对齐数据成员.以下面为例: #include using namespace std; #pragma pack(8) // or (16) str
我正在尝试让 Html Agility Pack 在我的情况下工作。我需要检测现有 HTML 页面中的所有脚本元素并删除它们,将更改保存到另一个文件。在这里,bodyNode 返回正确数量的脚本标签,
我正在使用 GitLab,需要创建一个 .gitlab-ci.yml 脚本来为生成 nuGet 包的项目运行持续集成管道。 我在寻找可靠的文档来回答这个问题时遇到严重问题: 我应该使用 dotnet
我一直在尝试查找这个问题,但没有找到有效的解决方案。我的编译器忽略了#pragma pack(push) #pragma pack(2) 和 __ attribute __ ((aligned (2)
我正在尝试在 Ubuntu 10.10 上使用 Solaris Studio for Linux。 当我尝试构建以下代码时, const char * 名称 [] = { "苹果", "橙子", "芒
我正在尝试从 HTML 中删除不必要的内容。具体来说,我想删除评论。我找到了一个很好的解决方案( Grabbing meta-tags and comments using HTML Agility
我正在VHDL中的一个项目上工作,我需要从开关中获取4位输入,并根据其他开关的值向右或向左移动一定数量的位,该按钮需要在向右/向左移位之间切换。但是,当我尝试在Xilinx ISE中实现代码时,出现以
我有一台具有 SSH 访问权限的服务器,我想在那里放置一个 Git 源代码库。我刚刚在本地创建了一个 --bare --shared 存储库并将其复制到每个 SCP 的服务器。现在我想根据 SSH u
-moz-box-pack(或 box-pack)的 justify 属性似乎在 Firefox 中被忽略了。 Live example从我们的网站。每行中的数字应该右对齐,它们在 Chrome 中也
这是我的代码。我想知道如何“正确地”读取 BMP 文件,然后在不强制打包结构的情况下读取 header 值。 typedef struct __attribute__((packed)){ uint8
我是一名优秀的程序员,十分优秀!