我需要一些帮助来获取我的nuget包来支持UWP。我们的nuget包生成脚本是用F#编写的。我们使用了文件夹名称“uap”和“uap10.0”但是当添加到UWP应用程序时,nuget包仍默认为(我相信)net45文件夹的dll。
我们也尝试过支持不同的体系结构,因为报告的错误是包不支持“win10-arm” - 我们尝试过的另一个文件夹名称。项目本身很好,所以我知道dll很好。这只是我们文件夹结构错误,我不确定什么是正确的。
这是相关代码(这是工作版本:
Target "ApiPackage" (fun _ ->
let androidDir = packagingDir @@ "lib/MonoAndroid"
let portableDir = packagingDir @@ "lib/net45/"
let netDir = packagingDir @@ "lib/netstandard2.0"
// let uwpDirARM = packagingDir @@ "runtimes/win10-arm/native"
// let uwpDir32 = packagingDir @@ "runtimes/win10-x86/native"
let iOSDir = packagingDir @@ "lib/monotouch"
let iOSDir2 = packagingDir @@ "lib/xamarinios"
CleanDirs [androidDir; portableDir]
CreateDir artifactsNuGetDir
trace "Copying Droid Files..."
let droidFiles = Directory.GetFiles((androidBuildDir @@ "Release"), "*.dll", SearchOption.AllDirectories)
for x in droidFiles do
printfn "%A " x
printfn ""
Copy androidDir droidFiles
let droidFiles = Directory.GetFiles((androidBuildDir @@ "Release"), "*.xml", SearchOption.AllDirectories)
for x in droidFiles do
printfn "%A " x
printfn ""
Copy androidDir droidFiles
trace "Copying NET Files..."
let netFiles = Directory.GetFiles((netBuildDir @@ "Release"), "*.dll", SearchOption.AllDirectories)
for x in netFiles do
printfn "%A " x
printfn ""
Copy netDir netFiles
let netFiles = Directory.GetFiles((netBuildDir @@ "Release"), "*.xml", SearchOption.AllDirectories)
for x in netFiles do
printfn "%A " x
printfn ""
Copy netDir netFiles
// let uwpFiles = Directory.GetFiles((uwpBuildDir @@ "Release"), "*.xml", SearchOption.AllDirectories)
// for x in uwpFiles do
// printfn "%A " x
// printfn ""
// Copy uwpDirARM uwpFiles
// Copy uwpDir32 uwpFiles
// let uwpFiles = Directory.GetFiles((uwpBuildDir @@ "Release"), "*.dll", SearchOption.AllDirectories)
// for x in uwpFiles do
// printfn "%A " x
// printfn ""
// Copy uwpDirARM uwpFiles
// Copy uwpDir32 uwpFiles
trace "Copying PCL Files..."
let pclFiles = Directory.GetFiles((portableBuildDir @@ "Release"), "*.dll", SearchOption.AllDirectories)
for x in pclFiles do
printfn "%A " x
printfn ""
Copy portableDir pclFiles
let pclFiles = Directory.GetFiles((portableBuildDir @@ "Release"), "*.xml", SearchOption.AllDirectories)
for x in pclFiles do
printfn "%A " x
printfn ""
Copy portableDir pclFiles
let netFiles2 = Directory.GetFiles((netBuildDir @@ "Release"), "*.dll", SearchOption.AllDirectories)
for x in netFiles2 do
printfn "%A " x
printfn ""
Copy portableDir netFiles2
let netFiles2 = Directory.GetFiles((netBuildDir @@ "Release"), "*.xml", SearchOption.AllDirectories)
for x in netFiles2 do
printfn "%A " x
printfn ""
Copy portableDir netFiles2
let iOSFiles = Directory.GetFiles((iosBuildDir @@ "Release"), "*.dll", SearchOption.AllDirectories)
for x in iOSFiles do
printfn "%A " x
printfn ""
Copy iOSDir iOSFiles
let iOSFiles = Directory.GetFiles((iosBuildDir @@ "Release"), "*.xml", SearchOption.AllDirectories)
for x in iOSFiles do
printfn "%A " x
printfn ""
Copy iOSDir iOSFiles
let iOSFiles2 = Directory.GetFiles((iosBuildDir @@ "Release"), "*.dll", SearchOption.AllDirectories)
for x in iOSFiles2 do
printfn "%A " x
printfn ""
Copy iOSDir2 iOSFiles2
let iOSFiles2 = Directory.GetFiles((iosBuildDir @@ "Release"), "*.xml", SearchOption.AllDirectories)
for x in iOSFiles2 do
printfn "%A " x
printfn ""
Copy iOSDir2 iOSFiles2
trace "Creating Nuget Package"
NuGet (fun p ->
{p with
Authors = ["OurCompany"]
References = ["OurAPI.dll"
"OurAPI.Android.dll"
"OurAPI.NET.dll"
// "OurAPI.UWP.dll"
"OurAPI.iOS.dll"]
Project = projectName
Description = projectDescription
OutputPath = artifactsNuGetDir
Summary = projectSummary
WorkingDir = packagingDir
Version = versionNumber
}) "OurAPI.nuspec"
)
dll适用于所有其他平台。我们再次尝试使用文件夹名称“uap”,“uap10.0”,“win10”并根据体系结构命名它们(上面代码中的两个)。
任何帮助将不胜感激。谢谢!
tfms的官方NuGet documentation说uap10.0
应该工作。
我建议创建一个独立的repro(nuspec + dummy dlls + dummy uwp项目)并在NuGet上报告一个问题。