我有一个针对 .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
目前是 Roslyn 问题:GitHub issue
答案 0 :(得分:4)
Roslyn :
是一个活跃的问题答案 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运行时生成二进制文件。