目前,我收到以下错误:
Could not install package 'csharp-extensions 1.2.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
以下是我的回购的链接:https://github.com/NullVoxPopuli/csharp-extensions
Nuget链接:https://www.nuget.org/packages/csharp-extensions/1.2.0
在我的project.json中,我指定了dnx46和dnxcore50
{
"version": "1.2.0",
"configurations": {
"Debug": {
"compilationOptions": {
"define": [ "DEBUG", "TRACE" ]
}
},
"Release": {
"compilationOptions": {
"define": [ "RELEASE", "TRACE" ],
"optimize": true
}
}
},
"dependencies": {
"Microsoft.Extensions.PlatformAbstractions": "1.0.0-*",
"System.Reflection": "4.1.0-*",
"xunit": "2.1.0-*",
"xunit.runner.dnx": "2.1.0-*"
},
"commands": {
"run": "csharp_extensions",
"test": "xunit.runner.dnx"
},
"frameworks": {
"dnx46": {
"dependencies": {
"System.Console": "4.0.0-beta-*",
"System.Reflection.TypeExtensions": "4.1.0-beta-*",
"System.Runtime.Extensions": "4.0.11-beta-*",
"System.Dynamic.Runtime": "4.0.11-beta-*",
"Microsoft.CSharp": "4.0.1-beta-*",
"System.IO": "4.0.11-beta-*"
}
},
"dnxcore50": {
"_": "this is the recommended windows runtime",
"dependencies": {
"System.Console": "4.0.0-beta-*",
"System.Reflection.TypeExtensions": "4.1.0-beta-*",
"System.Runtime.Extensions": "(4.0,]",
"System.Dynamic.Runtime": "(4.0.0,]",
"Microsoft.CSharp": "(4.0.0,]",
"System.IO": "(4.0,]"
}
}
},
}
我正在尝试安装nuget的项目是一个面向.NET Framework 4.6的类库(并不是一个dnx项目)
更新:
答案 0 :(得分:0)
查看你的csharp-extensions NuGet包它看起来不正确。它有您的项目文件,没有程序集。
我认为这是通过运行NuGet.exe package package.nuspec
生成的。这不会生成可以从NuGet.org使用的NuGet包,因为没有程序集。
如果您在Visual Studio中构建.xproj,如果您在项目选项中选中Product outputs on build
,则会在artifacts目录中为您生成.nupkg。不幸的是,这个.nupkg文件虽然有程序集,但只有一个lib \ dnxcore50目录,而NuGet不允许你将它安装到.NET 4.6项目中,因为NuGet发现它们不兼容。使用artifacts目录中的.nupkg文件会返回相同的错误。您似乎只能将此工件.nupkg安装到DNX项目(控制台或Web应用程序)中,而不是DNX类库项目。
我将看看现有的NuGet包并尝试生成相同的结构。例如,查看System.Xml.XmlDocument具有新的NuGet 3样式目录结构:
\lib
\dotnet
\net46
\ref
\dotnet
\net46
只有上面的目录中包含System.Xml.XmlDocument.dll。
NuGet 2只有lib目录,不支持dotnet作为目录。
答案 1 :(得分:0)
这是最终允许此nuget与非dnx项目一起使用的project.json配置:
关键部分是(在框架下)
"net46": {
"frameworkAssemblies": {
"System.Runtime": {
"type": "build",
"version": ""
}
},
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-*",
"System.Dynamic.Runtime": "4.0.11-beta-*",
"System.IO": "4.0.11-beta-*",
"System.Reflection.TypeExtensions": "4.1.0-beta-*",
"System.Runtime.Extensions": "4.0.11-beta-*",
}
},
和
使用xunit的通用测试运行器:
"dependencies": {
"Microsoft.Extensions.PlatformAbstractions": "1.0.0-*",
"System.Reflection": "4.1.0-*",
"xunit": "2.1.0-*",
"xunit.runners": "2.0.0",
},