2017-08-08 199 views
1

我試圖從我的一個項目中創建一個定製的nuget包。當我嘗試將它安裝到引用它的測試項目中時,我收到此錯誤:Nuget包不會安裝在UAP中

軟件包「package」1.0.5與uap10.0.15063(UAP,版本= v10.0.15063)不兼容。軟件包「package」1.0.5支持:net(.NETFramework,Version = v0.0)

這顯然不是這種情況,因爲測試項目可以很好地引用項目本身。

我建立基於我nuspec文件的NuGet包:

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>Project</id> 
    <version>1.0.0</version> 
    <title>Project</title> 
    <authors>company</authors> 
    <owners>company</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>desc</description> 
    <copyright>cp</copyright> 
    <dependencies> 
     <group targetFramework="uap "> 
     <dependency id="Logging" version="1.0.0" exclude="Build,Analyzers" /> 
     <dependency id="Microsoft.NETCore" version="5.0.0" exclude="Build,Analyzers" /> 
     <dependency id="Microsoft.NETCore.Portable.Compatibility" version="1.0.0" exclude="Build,Analyzers" /> 
     <dependency id="NuGet.Build" version="2.12.0" exclude="Build,Analyzers" /> 
     <dependency id="NuGet.CommandLine" version="4.1.0" exclude="Build,Analyzers" /> 
     </group> 
    </dependencies> 
    </metadata> 
    <files> 
    <file src="bin\Release\*.dll" target="lib" /> 
    </files> 

「記錄」,也就是一個自定義的NuGet包我從另一個項目的.csproj的文件中創建。

我試過刪除標籤,也嘗試重命名targetFramework =「uap」,沒有任何作品。

什麼可能是錯誤的,我可以嘗試使這個工作?

+0

你有沒有找到解決方案,我面臨着一個非常類似的問題 – Corcus

+0

@Corcus這不是一個完整的答案,但我找到了一個解決方法。我建議在nuget項目主頁上發佈一個bug。他們相當敏感。所以新版本的Nuget應該是建立在項目文件之外的,而不是一個nuspec文件。這樣做解決了我的問題。它並不總是萬事俱備,但它所做的一件事就是解決這個問題。這樣做還有其他問題,但我可以通過其他解決方法來解決這些問題。真是太糟糕了) – TheJeff

回答

0

目標不僅僅依賴於NuSpec文件,它將取決於C#項目和dll本身。轉到:

Project> Rightclick> Properties> TargetFramework>

將其設置爲.Net或其他。此外,將輸出類型更改爲控制檯應用程序而不是Windows應用程序,如果可行的話。

此外,你應該使用創建nuspec文件:

Nuget spec < ProjectPath >

說成包的元數據自動

這使我們有優勢,只是改變了元數據的.csproj文件,並複製。

我不是100%確定這是否能解決問題,但這應該是需要做的。祝你好運!

+1

這並不適合我,無論我把目標設置在正確的框架中,我總是會遇到這個問題。 – TheJeff