首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msbuild不只是恢复fody nuget包

msbuild不只是恢复fody nuget包
EN

Stack Overflow用户
提问于 2014-09-16 23:26:07
回答 2查看 4.4K关注 0票数 1

我正在使用Stamp.Fody nuget包来标记我的.Net程序集。它使用福迪作为依赖的nuget包。詹金是我们的持续集成服务器。为了构建.Net解决方案,使用了MSBuild命令行调用。

在运行msbuild命令行时,会出现以下错误。

"C:\Source\Demo.sln“(默认目标) (1) -> "C:\Source\Demo.UI.csproj”(默认目标) (2) -> C:\Source\Demo.UI.csproj(185,5):错误:此项目引用此计算机上缺少的NuGet包。启用NuGet包还原以下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是..\packages\Fody.1.25.0\build\Fody.targets.

在使用Visual时,如果没有Fody或任何其他nuget包,那么Visual的包管理器本身就会成功地恢复所有丢失的包。

有趣的是,如果我在删除MSBuild、Prism和Fody包并清除nuget包缓存之后运行NUnit命令行,除了Fody包之外,所有其他包(NUnit和Prism)都会成功恢复。但不是福迪。

根据NuGet包还原不获取生成目标程序集(工具)参考,我了解到在1.13.0.0之前,所有Fody软件包版本都有一个nuget下载问题。同样,在这个链接中,我添加了Fody包引用到我的解决方案中的所有项目,并试图构建解决方案,但它再次完全构建失败。(我没有安装以前的版本,因此不需要从Tools/Fody文件夹中删除任何内容-正如readme.txt中提到的那样)

我检查了所有其他已知的可能案例,但都没有成功。

我不知道我在这里错过了什么。有人能帮我一下吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-18 09:49:58

nuget包的推荐方法是在构建之前使用自动包还原,而不是在构建过程中使用。当与MSBuild一起使用时,您可以在实际构建开始之前使用restore选项(在NugetVersion2.7和更高版本中提供),这将下载解决方案使用的所有Nuget包。

更多信息可以在包恢复上找到,特别是在命令行包以MSBuild包装的部分。

这种方法不仅适用于基于Jenkins的CI,还适用于TFS或任何其他CI服务器。Fody包西蒙的作者推荐使用相同的方法

票数 4
EN

Stack Overflow用户

发布于 2014-09-18 03:37:39

根据如何在Jenkins中构造构建作业,可以在构建步骤期间执行一个非常简单的批处理。

批处理文件可以是与所有作业在构建服务器上共享的文件,也可以是特定于项目的文件。我倾向于每个项目有一个。

代码语言:javascript
复制
..\.nuget\NuGet.exe Install <your-package-to-restore> -OutputDirectory ..\packages
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25879932

复制
相关文章

相似问题

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