首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MsBuild在上找不到还原的NuGet包

MsBuild在上找不到还原的NuGet包
EN

Stack Overflow用户
提问于 2018-03-14 13:24:40
回答 4查看 8K关注 0票数 4

我试图构建一个存储在上的外部中的解决方案。

它有以下步骤:

1: Git还原工程 2: NuGet还原工程 3:构建-不工作

在查看日志时,我的第一个猜测是,MsBuild没有查找NuGet存储它们的包。NuGet还原中的一些行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2018-03-14T21:10:11.0352862Z Completed installation of AngleSharp 0.9.9
2018-03-14T21:10:11.0353230Z Adding package 'AngleSharp.0.9.9' to folder 'D:\a\1\s\packages'
2018-03-14T21:10:11.0353563Z Added package 'AngleSharp.0.9.9' to folder 'D:\a\1\s\packages'
2018-03-14T21:10:11.0354972Z Added package 'AngleSharp.0.9.9' to folder 'D:\a\1\s\packages' from source 'https://api.nuget.org/v3/index.json' 'Microsoft.SharePointOnline.CSOM.16.1.7317.1200' to folder 'D:\a\1\s\packages' 

来自MsBuild的一些行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
018-03-14T21:10:21.2105399Z PrepareForBuild:
2018-03-14T21:10:21.2105793Z   Creating directory "bin\Release\".
2018-03-14T21:10:21.2424947Z   Creating directory "obj\Release\".
2018-03-14T21:10:30.3569560Z ResolveAssemblyReferences:
2018-03-14T21:10:30.3570425Z   Primary reference "AngleSharp, Version=0.9.9.0, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL".
2018-03-14T21:10:30.3670272Z ##[warning]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2041,5): Warning MSB3245: Could not resolve this reference. Could not locate the assembly "AngleSharp, Version=0.9.9.0, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

我的解决方案/包结构是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
....\mysolution\myproject\myproject.csproj
....\mysolution\myproject\packages.config

当前的Config:

那么,我如何才能改变Nuget和/或msbuild-行为来实现这一目标呢?

(更新):要清除这个问题:每个包都有这个问题。它们都在packages.config中,每个都是从Nuget下载的,但也没有从MsBuild中找到

(Update2)当前生成的命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\a\_tool\NuGet\4.4.1\x64\nuget.exe restore D:\a\1\s\AweCsomeO365\packages.config -PackagesDirectory D:\a\1\a\packages -Verbosity Detailed -NonInteractive -ConfigFile D:\a\1\Nuget\tempNuGet_22.config

MSBUILD:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" "D:\a\1\s\AweCsomeO365\AweCsomeO365.csproj" /nologo /nr:false /dl:CentralLogger,"D:\a\_tasks\VSBuild_(GUID)\1.126.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=(GUID)|SolutionDir=D:\a\1\s\AweCsomeO365"*ForwardingLogger,"D:\a\_tasks\VSBuild_(GUID)\1.126.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation=D:\a\1\a /p:ReferencePath=D:\a\1\a\packages /p:platform="anyCPU" /p:configuration="Release" /p:VisualStudioVersion="15.0" /p:_MSDeployUserAgent="VSTS_(GUID)_build_4_22

我替换了GUID;VSTS似乎动态地生成了tempNuGetConfig。

还是这样。即使日志声明nuget存储包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Added package 'AngleSharp.0.9.9' to folder 'D:\a\1\a\packages'

MsBuild似乎没有在那里找到它们:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 For SearchPath "D:\a\1\a\packages".
2018-03-16T13:57:42.4625155Z           Considered "D:\a\1\a\packages\AngleSharp.winmd", but it didn't exist.
2018-03-16T13:57:42.4625456Z           Considered "D:\a\1\a\packages\AngleSharp.dll", but it didn't exist.
2018-03-16T13:57:42.4625730Z           Considered "D:\a\1\a\packages\AngleSharp.exe", but it didn't exist.

VSTS-配置值:

MsBuild:/p:ReferencePath=$(Build.StagingDirectory)\packages

Nuget-DestiantionDirectory:$(Build.StagingDirectory)\packages

(update3):我在存储库中没有-解决方案文件,但是只有一个csproj文件。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-03-23 01:30:19

问题是,在项目中有一个指向GIT-Repository (也不应该)的位置的包的隐藏路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <Reference Include="AngleSharp, Version=0.9.9.0, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
      <HintPath>..\..\AweCsome365Test\packages\AngleSharp.0.9.9\lib\net45\AngleSharp.dll</HintPath>
    </Reference>

我最初的方法是为NuGet定义一个目标目录,为MSBuild定义一个源目录,以便对两个都理解的包使用另一个位置。

但问题(据我所知)是,NuGet总是创建子文件夹结构的"./packages/{PackagesName}/lib/net45/{file}"和MSBuild,在将"./packages"设置为源路径时不会递归地显示。

以上只是对将来遇到同样问题的人的一个解释。

因此,我的解决方案是模仿nuget的本地行为,并更改输出目录以匹配HintPath (即使存储库中没有"AweCsome365Test")-directory:

(我将把这个问题留到一边,因为这个解决方案闻起来很可疑。如果有人有一个更好的解决方案,不需要使用HintPath就可以连锁nuget和msbuild,我很乐意花我的钱在它上)

票数 5
EN

Stack Overflow用户

发布于 2018-03-20 19:48:55

我相信你的MSBuild "ReferencePath“参数是不正确的。您正在告诉MS Build,您的所有引用(nuget包及其all包括在内)都将位于“D:\a\1\a\软件包”,但nuget并不会在那里下载和存储包和all。Nuget将下载并解压缩文件到D:\a\1\a\packages{packageName}{version}\lib{environment}\package.dll.中。我认为您需要从您的ReferencePath参数中删除最后一个参数( MSBuild )。

我还注意到,您的PackageLocation参数与NuGet还原任务的目标不相同,是否需要向该参数中添加"\packages“,如还原任务中的目标?

票数 1
EN

Stack Overflow用户

发布于 2018-03-22 12:36:27

将nuget还原目标目录更改为$(Build.SourcesDirectory)\packages,并删除msbuild参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49287852

复制
相关文章
jQuery scroll(滚动)延迟加载
延迟加载 $(window).scroll(function(){ var scrollHeight = $(document).height(); //文档高度 var scrollTop = $(this).scrollTop(); //滚动条卷去高度 var windowHeight = $(this).height(); // 窗口高度 // console.log(scrollHeight, scrollTop, windowHeight) if(scrol
deepcc
2018/05/16
9K0
jQuery进阶,$.Deferred() 延迟对象
JS里面有大量的异步方法,写着写着,代码就会变得>>。多层嵌套的回调,很影响后续代码的维护,也许今天你还记得这块回调逻辑,明天你就很有可能被这回调姿势给坑了。
libo1106
2018/08/08
7970
延迟加载图片的jQuery插件-Lazy Load Plugin for JQuery
Lazy Load是一个用Javascript写得jQuery插件。它可以使一个长网页中,不在当前视图中的图片延迟加载,以提高页面的载入速度。
EltonZheng
2021/01/26
3.7K0
延迟加载图片的 jQuery 插件:Lazy Load
网站的速度非常重要,现在有很多网站优化的工具,如 Google 的 Page Speed,Yahoo 的 YSlow,对于网页图片,Yahoo 还提供 Smush.it 这个工具对图片进行批量压缩,但是对于图片非常多的网站,载入网页还是需要比较长的时间,这个时候我们可以使用 Lazy Load 这个 jQuery 插件来延迟加载图片。
Denis
2023/04/15
1.9K0
如何做到 jQuery-free?
jQuery是现在最流行的JavaScript工具库。 据统计,目前全世界57.3%的网站使用它。也就是说,10个网站里面,有6个使用jQuery。如果只考察使用工具库的网站,这个比例就会上升到惊人的
ruanyf
2018/04/12
1.3K0
如何做到 jQuery-free?
基于jQuery或Zepto的图片延迟加载插件
当我们网站的页面图片过多时,加载速度就会很慢。尤其是用手机2G/3G访问页面,不仅页面慢,而且还会用掉很多流量。我们主题之前也都采用了图片的懒加载形式,但都不完美,部分主题还采用了占位图片来控制懒加载,今天换一种js图片懒加载,它原理就是将页面内所有需要加载的图片全部换成一张默认的图片(一般尺寸很小),只有图片在可视区域才去请求加载,这样的话应该就能满足我们日常所需,好了不说废话先按照教程操作试试,后期主题会逐一更新,稍安勿躁!!!
李洋博客
2022/11/03
3.2K0
使用jQuery的delay()延迟执行show()和hide()不起效的解决方法
今天使用 jQuery 的 delay() 来延迟执行 hide() ,发现延时不起效,查了一些资料,找到了其中的原因。
德顺
2019/11/12
3.3K0
响应式jquery瀑布流结合图片延迟加载特效
此作品是一款非常实用的jquery特效,结合了两个jquery插件jquery瀑布流插件blocksit和图片延迟加载插件jquery.lazyload,网站上分享过很多款瀑布流作品,可是很多网友们都觉得不是很懂,有点复杂,今天有空就把此作品整理了出来分享给大家学习用,如果作品有什么问题请多多反馈。。。
李维亮
2021/07/09
4.9K0
使用jQuery
jQuery概述 Write Less Do More(用更少的代码来完成更多的工作) 使用CSS选择器来查找元素(更简单更方便) 使用jQuery方法来操作元素(解决浏览器兼容性问题、应用于所有元素并施加多个方法) 引入jQuery 下载jQuery的开发版和压缩版 从CDN加载jQuery <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script> window.jQuery ||
用户8442333
2021/05/20
9980
利用Jquery Lazyload JS插件实现网页图片延迟加载
Jquery Lazyload是一款网页图片延迟加载JS插件,本文介绍该JS的使用方法。
阿峰技术博客
2022/10/22
8.5K0
利用Jquery Lazyload JS插件实现网页图片延迟加载
火狐的Http请求插件的安装和使用[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/147776.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/02
1.2K0
火狐的Http请求插件的安装和使用[通俗易懂]
一些原生写法可以替代Jquery方法
jQuery的核心是通过各种选择器,选中DOM元素,可以用querySelectorAll方法模拟这个功能。
javascript.shop
2019/09/04
2.1K0
JQuery学习—JQuery-Validation 使用
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/121266.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/19
4.6K0
程序员Web面试之jQuery
又到了一年一度的毕业季了,青春散场,却等待下一场开幕。 在求职大军中,IT行业的程序员、码农是工科类大学生的热门选择之一, 尤其是近几年Web的如火如荼,更是吸引了成千上万的程序员投身其中追求自己的梦
葡萄城控件
2018/01/10
2.6K0
程序员Web面试之jQuery
Jquery使用小结
这周都在做前端页面的开发,用了Jquery知识比較多,方便以后使用。就做一个小总结吧。
全栈程序员站长
2022/07/10
5720
jQuery 效果使用
.hide()   隐藏匹配的元素。   .hide()     这个方法不接受任何参数。   .hide([duration][,complete])     duration       一个字符串或者数字决定动画将运行多久。     complete       在动画执行完时执行的函数。   .hide([duration][,easing][,complete])     duration       一个字符串或者数字决定
用户1197315
2018/01/19
6.4K0
jQuery使用技巧
使用回调方法的缺点之一是当执行类库中的方法后,上下文对象被设置到另外一个元素,比如,执行下面代码:
零式的天空
2022/03/22
1.3K0
jQuery的使用
1.需求分析 在首页中(logo的上方)显示一个广告图片(页面加载后,间隔3秒弹出广告图片,再间隔3秒后隐藏广告图片)。【使用jQuery实现】
用户5927264
2019/07/31
8.2K0
golang 使用 rabbitmq 延迟队列
这样类似的场景经常会发生在实际的业务中,它们总有一个共性,就是当前并不是马上触发,而是需要过一段时间才进行触发,当触发时间到达时才进行具体的执行。那么问题就来了,为了实现这样的功能,我们如何更加灵活的实现呢?
LinkinStar
2022/09/01
1.2K0
golang 使用 rabbitmq 延迟队列
点击加载更多

相似问题

将列表与列表字典进行比较的最快方法

315

合并n字典并在2.6上加值的最快方法

13

python基于键匹配合并字典的最快方法

30

比较列表与集合列表的最快方法

22

合并具有公共字段的列表的最快方法?

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文