从.NET Framework传统项目

时间:2017-03-08 13:36:16

标签: c# .net asp.net-core .net-core

我有一个针对 .NET Standard 1.3 编写的库,它应该与 .NET Framework 4.6.1 运行时兼容。该库使用新的 csproj ,并在 .NET Core 项目引用时正常工作。

我还在传统的 csproj 上有一个 WPF 项目,它应该可以使用这个库。在 Visual Studio 2017 中,我设法引用了 .NET Standard 库,并且编译时没有错误。

在运行时,它会尝试加载与 .NET Standard 项目相关的程序集,但它会因assembly not found个例外而失败。我可以看到我的输出文件夹确实没有任何依赖项。

有没有办法以这种方式引用我的库,将所有必需的依赖项复制到输出文件夹(或者使 WPF 项目正常运行的等效解决方案)?

注意:如果我逐个手动引用所有缺少的依赖项并使用运行时程序集版本绑定我可以让它运行,但在引用项目时我不应该这样做。

这是完整的项目页面: https://github.com/UnoSD/PasswordManager

.NET Standard csproj

WPF package.config

WPF csproj

目前是 Roslyn 问题:GitHub issue

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

您必须为.NET 4.6.1指定编译器输出

将以下行放入.NET标准库项目的csproj中。

<TargetFrameworks>netstandard1.4;net461</TargetFrameworks>

(应改为<TargetFramework>netstandard1.4</TargetFramework>

Build将为.NET 4.6.1和与.NET Standard 1.4兼容的.NET Core运行时生成二进制文件。