gpt4 book ai didi

c# - 使用 .NETStandard 时不会将 Nuget 包复制到输出

转载 作者:太空狗 更新时间:2023-10-29 20:33:06 25 4
gpt4 key购买 nike

我想在 WPF (.NET 4.6) 应用程序和 .NET Core 应用程序之间共享一个项目。为此,我首先制作了一个可移植库,然后在 Visual Studio 2015 中将其转换为 .NETStandard 1.3 版,从而制作了一个 .NET Standard 库。

但是,.NETStandard 库需要引用 Entity Framework(例如),所以我在 project.json 中添加了这个依赖项,一切都顺利构建。但是,当我实际运行该应用程序时,只要我实际尝试使用 Entity Framework 库加载数据,我就会收到“未找到文件”异常。这是预料之中的,因为使用 .NETStandard 时没有任何 nuget 包被复制到输出目录(与对普通 .NET 使用 nuget 不同),所以我可以看到异常的原因。

当使用 .NETStandard 库并从 .NET 4.6 项目引用时,如何修复此问题/获取要复制到输出的 nuget 依赖项? (下面是我的 project.json,如果需要,很乐意添加更多代码)。

{
"supports": {},
"dependencies": {
"Microsoft.EntityFrameworkCore.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.Sqlite": "1.1.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.1"
},
"frameworks": {
"netstandard1.3": {}
}
}

最佳答案

Microsoft 终于承认这是一个问题并且will fix它有望在 NuGet 版本 4.0.1 中出现,这是 VS 2017 发布后对 NuGet 4 的首次更新。

现在最干净的解决方法是添加 <RestoreProjectStyle>PackageReference</RestoreProjectStyle>到遗留项目。

但是according to Rob Relyea MS 将在 RTM 之后忽略此属性,因此另一个解决方法是 <PackageReference Update="PlaceholderToConvinceThisProjectToGetTransitivePackageReferenceFromProjectReferences"/> .

关于c# - 使用 .NETStandard 时不会将 Nuget 包复制到输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41351534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com