Nuget 打包在 VSTS 中自动化后失败
Nuget Packaging fails after automating it in VSTS
对于我经常用于各种项目的公共库,我设置了一个 nuget 服务器。有一段时间我手动发布了 nuget 包,如:
nuget pack .\ProjectFolder\CommonProjectName.csproj -Symbols -Build -Properties Configuration=Release
并手动将此包推送到 nuget 服务器。
现在我想使用 VSTS Build vNext 自动发布,如本博文所述:http://www.codewrecks.com/blog/index.php/2015/09/26/publishing-a-nuget-package-to-nugetmyget-with-vso-build-vnext/
我使用与之前相同的 nuspec 文件:
<?xml version="1.0"?>
<package >
<metadata>
<id>Common Library</id>
<version>1.0.0.0</version>
<title>Library Title</title>
<authors>...</authors>
<owners>...</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>...</description>
<releaseNotes>...</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>...</tags>
<dependencies>
<dependency id="EntityFramework" version="6.1.3" />
<dependency id="log4net" version="2.0.4" />
<dependency id="Microsoft.AspNet.Mvc" version="5.2.3" />
<dependency id="Microsoft.AspNet.Razor" version="3.2.3" />
<dependency id="Microsoft.AspNet.WebPages" version="3.2.3" />
<dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
</dependencies>
</metadata>
</package>
现在在自动化之后我收到以下错误消息:
说明:程序集 'bin\Release\CommonLibrary.dll' 不在 'lib' 文件夹中,因此在将程序包安装到项目中时不会将其添加为参考。
解决方法:如果要引用就移到'lib'文件夹中。
问题:程序集位于 lib 文件夹之外。
我阅读了 nuget 站点上的包约定部分,但我如何自动遵守这些约定。换句话说,我如何在我的 buidcontroller 的正确位置获得构建和引用的 dll。
感谢您的帮助,
亲切的问候,
卢克·克里宁
Extra:使用 FTP 下载 nuget 包后,我的完整源代码以及我编译的源代码被添加到树中的包中,就像我的原始源代码一样代码。所以我编译的 dll 在 de 文件夹中 .\Bin\Release\
向 nuspec 文件添加一个文件部分,添加一个目标似乎是解决方案:
<?xml version="1.0"?>
<package >
<metadata>
<id>Common Library</id>
<version>1.0.0.0</version>
<title>Library Title</title>
<authors>...</authors>
<owners>...</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>...</description>
<releaseNotes>...</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>...</tags>
<dependencies>
<dependency id="EntityFramework" version="6.1.3" />
<dependency id="log4net" version="2.0.4" />
<dependency id="Microsoft.AspNet.Mvc" version="5.2.3" />
<dependency id="Microsoft.AspNet.Razor" version="3.2.3" />
<dependency id="Microsoft.AspNet.WebPages" version="3.2.3" />
<dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
</dependencies>
</metadata>
<files>
<file src="<TARGET SPECIFIC FILE.DLL>" target="lib" />
<file src="<TARGET SPECIFIC FILE.PDB>" target="lib" />
...
</files>
</package>
对于我经常用于各种项目的公共库,我设置了一个 nuget 服务器。有一段时间我手动发布了 nuget 包,如:
nuget pack .\ProjectFolder\CommonProjectName.csproj -Symbols -Build -Properties Configuration=Release
并手动将此包推送到 nuget 服务器。
现在我想使用 VSTS Build vNext 自动发布,如本博文所述:http://www.codewrecks.com/blog/index.php/2015/09/26/publishing-a-nuget-package-to-nugetmyget-with-vso-build-vnext/
我使用与之前相同的 nuspec 文件:
<?xml version="1.0"?>
<package >
<metadata>
<id>Common Library</id>
<version>1.0.0.0</version>
<title>Library Title</title>
<authors>...</authors>
<owners>...</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>...</description>
<releaseNotes>...</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>...</tags>
<dependencies>
<dependency id="EntityFramework" version="6.1.3" />
<dependency id="log4net" version="2.0.4" />
<dependency id="Microsoft.AspNet.Mvc" version="5.2.3" />
<dependency id="Microsoft.AspNet.Razor" version="3.2.3" />
<dependency id="Microsoft.AspNet.WebPages" version="3.2.3" />
<dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
</dependencies>
</metadata>
</package>
现在在自动化之后我收到以下错误消息:
说明:程序集 'bin\Release\CommonLibrary.dll' 不在 'lib' 文件夹中,因此在将程序包安装到项目中时不会将其添加为参考。 解决方法:如果要引用就移到'lib'文件夹中。 问题:程序集位于 lib 文件夹之外。
我阅读了 nuget 站点上的包约定部分,但我如何自动遵守这些约定。换句话说,我如何在我的 buidcontroller 的正确位置获得构建和引用的 dll。
感谢您的帮助,
亲切的问候, 卢克·克里宁
Extra:使用 FTP 下载 nuget 包后,我的完整源代码以及我编译的源代码被添加到树中的包中,就像我的原始源代码一样代码。所以我编译的 dll 在 de 文件夹中 .\Bin\Release\
向 nuspec 文件添加一个文件部分,添加一个目标似乎是解决方案:
<?xml version="1.0"?>
<package >
<metadata>
<id>Common Library</id>
<version>1.0.0.0</version>
<title>Library Title</title>
<authors>...</authors>
<owners>...</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>...</description>
<releaseNotes>...</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>...</tags>
<dependencies>
<dependency id="EntityFramework" version="6.1.3" />
<dependency id="log4net" version="2.0.4" />
<dependency id="Microsoft.AspNet.Mvc" version="5.2.3" />
<dependency id="Microsoft.AspNet.Razor" version="3.2.3" />
<dependency id="Microsoft.AspNet.WebPages" version="3.2.3" />
<dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
</dependencies>
</metadata>
<files>
<file src="<TARGET SPECIFIC FILE.DLL>" target="lib" />
<file src="<TARGET SPECIFIC FILE.PDB>" target="lib" />
...
</files>
</package>