2017-08-08 96 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