我在appveyor.yml
以下after_build
定义:如何使用AppVeyor和GitVersion中的特定版本将项目作为包依赖项引用?
after_build:
- cmd: nuget pack "%project_file%" -properties "Configuration=%configuration%" -version "%GitVersion_NuGetVersion%" -symbols
- cmd: nuget pack "%extras_project_file%" -properties "Configuration=%configuration%" -version "%GitVersion_NuGetVersion%" -symbols
现在,我有这两个.proj
-files,其中包含相应的.nuspec
-file:
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<authors>$author$</authors>
</metadata>
</package>
最后,我有一点点增加为extras_project_file
:
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<authors>$author$</authors>
<dependencies>
<dependency id="***project_name***" version="$version$" />
</dependencies>
</metadata>
</package>
实际上,project_name由于简单原因被替换为硬编码值 - 没有使用
-properties
注入。其次,尽管对于实际包装是强制性的,但任何项目相关要素(例如description
和authors
)都被忽略以提供中性问题。
project_file
被成功地填充:
试图从 'Caliburn.Micro.Contrib.Controller.csproj' 建立包。
MSBuild自动检测:从'C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin'使用msbuild版本'14.0'。
打包来自'C:\ projects \ dotnet-caliburn-micro-contrib-controller \ src \ Caliburn.Micro.Contrib.Controller \ bin \ Release'的文件。
将'Caliburn.Micro.Contrib.Controller.nuspec'用于元数据。
找到packages.config。使用作为依赖关系列出的软件包
已成功创建软件包'C:\ projects \ dotnet-caliburn-micro-contrib-controller \ Caliburn.Micro.Contrib.Controller.0.1.0-unstable0068.nupkg'。
鉴于extras_project_file
失败:
试图从 'Caliburn.Micro.Contrib.Controller.Extras.csproj' 建立包。
MSBuild自动检测:从'C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin'使用msbuild版本'14.0'。
打包来自'C:\ projects \ dotnet-caliburn-micro-contrib-controller \ src \ Caliburn.Micro.Contrib.Controller.Extras \ bin \ Release'的文件。
使用'Caliburn.Micro.Contrib.Controller.Extras.nuspec'作为元数据。
找到packages.config。使用列为依赖项的软件包
不支持使用SemVer 2.0.0的版本:0.1.0-unstable.68 + Branch.develop.Sha.7f85e35f315f7fe3ecd35762b65802e5467a57c2。
我甚至不确定此功能(代码替换<dependencies>
)是否实际可用。
如果不是,我还能如何将两个.csproj
文件打包成两个单独的.nupkg
文件,其中一个文件依赖于另一个版本与特定版本(与要构建的包相同的版本)?