Xamarin.forms NuGet如何决定将包目录放在何处?
我正在处理一些Xamarin表单项目和生成多目标Xamarin包的项目。我花了一天的时间来努力让其中一个项目在Azure DevOps中正常工作,我放弃了 当我在本地处理一个特定的单元测试项目时,它会设置以下目录结构:Xamarin.forms NuGet如何决定将包目录放在何处?,xamarin.forms,azure-devops,nuget,azure-pipelines,Xamarin.forms,Azure Devops,Nuget,Azure Pipelines,我正在处理一些Xamarin表单项目和生成多目标Xamarin包的项目。我花了一天的时间来努力让其中一个项目在Azure DevOps中正常工作,我放弃了 当我在本地处理一个特定的单元测试项目时,它会设置以下目录结构: + ProjectName + bin + obj + ... + packages + <nuget packages here> + ProjectName + bin + obj + packages
+ ProjectName
+ bin
+ obj
+ ...
+ packages
+ <nuget packages here>
+ ProjectName
+ bin
+ obj
+ packages
+ ...
很明显,Azure DevOps对packages
文件夹的创建位置有不同的想法。如果我将。\..
编辑为。\
,一切正常。这与许多项目是一致的。在我的其他几个项目中,所有.csproj文件都使用。\
,它们具有以下目录结构:
+ ProjectName
+ bin
+ obj
+ ...
+ packages
+ <nuget packages here>
+ ProjectName
+ bin
+ obj
+ packages
+ ...
我在这两个.csproj
中都找不到任何似乎表明其中任何一个正在指示nuget做任何不同的事情的东西。但每个人的表现都非常不同。我唯一的猜测是,我有一些超级隐藏的本地配置,用于更改默认行为的“坏”配置,而该文件不在源代码管理中,所以DevOps使用“真正的”默认配置
是什么导致了这一切
有些人要求.yml看看我们是如何恢复软件包的:我相信就是这样:
- task: NuGetToolInstaller@1
displayName: "Install nuget"
inputs:
versionSpec: '4.4.1'
- task: NuGetCommand@2
displayName: 'restore $(solution)'
inputs:
restoreSolution: '$(solution)'
vstsFeed: "$(packageFeedName)"
我不是团队中的devops成员,但我对yml略知一二<代码>$(解决方案)只是我们的解决方案文件的路径,包提要名称就是它所说的名称。它们对我来说非常简单。您有恢复软件包的步骤吗?您可以共享您的yml文件吗?我认为它使用解决方案根目录(当重新格式化解决方案时),或者在还原单个项目时使用项目根目录(相对于packages.config)。你如何在Azure管道中恢复你的NuGet软件包。
- task: NuGetToolInstaller@1
displayName: "Install nuget"
inputs:
versionSpec: '4.4.1'
- task: NuGetCommand@2
displayName: 'restore $(solution)'
inputs:
restoreSolution: '$(solution)'
vstsFeed: "$(packageFeedName)"