C#框架版本-使用多个框架
我有一个使用.netcore(1.01)的应用程序,运行良好。但是没有针对.net核心的PayPal SDK 为了解决这个问题,我考虑将.NET4.6.1加载到我的项目中,这样我就可以从那里使用这个SDK,而我的项目的其余部分继续使用.NETCore 这类工作,我的项目构建,但我得到了数以千计的错误引用-项目:“ProjectName..netframework4.6.1” 下面是我的project.json的副本C#框架版本-使用多个框架,c#,asp.net,C#,Asp.net,我有一个使用.netcore(1.01)的应用程序,运行良好。但是没有针对.net核心的PayPal SDK 为了解决这个问题,我考虑将.NET4.6.1加载到我的项目中,这样我就可以从那里使用这个SDK,而我的项目的其余部分继续使用.NETCore 这类工作,我的项目构建,但我得到了数以千计的错误引用-项目:“ProjectName..netframework4.6.1” 下面是我的project.json的副本 { "userSecretsId": "xxxxx", "buildO
{
"userSecretsId": "xxxxx",
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"BundlerMinifier.Core": "2.2.281",
"ChilkatDnCore": "9.5.0.59",
"CsvHelper": "2.16.3",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.SqlServer.Design": {
"version": "1.0.1",
"type": "build"
},
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"type": "build",
"version": "1.0.0-preview2-final"
}
},
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
},
"net461": {
"imports": [
],
"dependencies": {
"PayPal": "1.7.4"
}
}
},
"tools": {
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8"
]
}
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
},
"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"web.config"
]
}
}
我从未尝试过做一个跨框架的项目。因此,任何援助都将不胜感激
卡兹
--更新--
因此,我将依赖项列表从特定于框架的列表中移出,只有一个在.NET4.6中出现错误,因此我将其移回核心依赖项列表中,所有内容似乎都构建得很好,没有错误
但现在出现了一个新的错误。创建一个新类并使用PayPal.API添加PayPal API,我得到错误“找不到名称空间PayPal”
奇怪的是,intellisense知道这一点,当我开始添加它时,我得到一个警告,“.net 4.6-可用--.net核心-不可用”,所以很明显它就在那里,我只需要告诉它如何使用4.6框架来使用using语句…您最好的选择可能是拥有一个单独的服务层,您可以通过HangFire调用该层,或者一个API,该API将容纳仍在.NET 4.6.1中的PayPal代码,而您的其余代码仍在核心中。您最好的选择可能是拥有一个单独的服务层,您可以通过HangFire调用该层,或者使用API将PayPal代码保存在.NET4.6.1中,而其余代码则保存在核心中。或者将其全部包含在4.6.1中。