我有两种解决方案:一种是通用的,一种是针对UI的
第一个解决方案包含一个项目类型:Xamarin.iOS.Library(比方说MyCommon.iOS)
我放了一些通用代码。使用Release|iPhone
进行编译将产生一个dll文件(MyCommon.iOS.dll)。我创建创建nuget包的Azure管道。这是YAML:
pool:
name: Azure Pipelines
demands: Xamarin.iOS
steps:
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 5.3.1'
inputs:
versionSpec: 5.3.1
- task: NuGetCommand@2
displayName: 'NuGet restore'
- task: XamariniOS@2
displayName: 'Build Xamarin.iOS solution MyCustom.sln'
inputs:
solutionFile: MyCustom.sln
configuration: '$(BuildConfiguration)'
packageApp: false
runNugetRestore: true
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)/MyCommon'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**/MyCommon/bin/iPhone/$(BuildConfiguration)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/MyCommon'
flattenFolders: true
- task: NuGetCommand@2
displayName: 'NuGet package MyCustom.touch'
inputs:
command: custom
arguments: 'pack $(Build.SourcesDirectory)/NuGet/cdsa.de.MyCustom.iOS.nuspec -BasePath $(Build.ArtifactStagingDirectory) -OutputDirectory $(Build.ArtifactStagingDirectory) -Version $(NuGetPackageVersion)'
- task: NuGetCommand@2
displayName: 'NuGet publish packages'
inputs:
command: push
vstsFeed: '3fb95c67-9435-497b-a078-3339286b7209'
packagesToPush: '$(Build.ArtifactStagingDirectory)/*.nupkg'
publishVstsFeed: '3fb95c67-9435-497b-a078-3339286b7209'
condition: and( succeeded(), eq(variables['BuildConfiguration'], 'Release'), eq(variables['PublishNugetPackage'], 'Yes'))
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: MyCustom'
inputs:
ArtifactName: MyCustom
在第二个解决方案UI中,我有Xamarin项目(共享的,iOS和UWP)。 Xamarin版本:4.3.0.991211
当尝试在UI项目中安装nuget软件包时,我得到了:
NU1202:软件包mycommon.ios.1.0.3-beta与不兼容 xamarinios10(Xamarin.iOS,Version = v1.0)。打包mycommon.ios 1.0.3-beta支持:net(.NETFramework,Version = v0.0)
如何解决?程序包是否具有测试版(用于测试目的)都没关系