由于我需要导入一个面向.NET Standard 2的库,我已将我的库升级到.NET 4.7.1,正如我从MS视频中所理解的那样应避免此问题:https://www.youtube.com/watch?v=u67Eu_IgEMs
但是,添加.NET标准现在会导致数十个System.xxx引用,而不是对.NET Standard的单一引用(根据视频)。
更糟糕的是,已添加了几个参考文献,但基础文件似乎缺少生成警告,例如
update-package -reinstall
我甚至在视频中重新创建了演示项目并获得了相同的结果 - 没有单一的.NET Standard参考,而是大量的DLL引用。
我已尝试过NUGET import numpy as np
from keras.models import Sequential
from keras.layers import Embedding
model = Sequential()
model.add(Embedding(dictionary_size_here, sizeof_embedding_vector, input_length= input_length_here))
input_array = array([[integer]]) #each integer is fed one by one using a loop
model.compile('rmsprop', 'mse')
output_array = model.predict(input_array)
并降级并升级到.NET标准2.0和2.0.1
答案 0 :(得分:6)
由于在.NET Framework 4.7.1上实现.NET Standard 2.0支持的一些问题,需要将其他文件部署到bin文件夹。
此问题被描述为已知问题here。
在.NET Framework 4.7.2上定位或运行时,复制到输出文件夹的文件数将为0。
还请确保您使用的是最新的Visual Studio(至少版本15.6.3),因为可以使用此方案所需的一些更改。
答案 1 :(得分:6)
我为自己的问题创建的答案是:
您的.NET Framework项目是否使用packages.config
?如果是,不要引用.NET标准库。如果您引入.NET Standard,VS 2017中的package / reference / binding-redirect会严重破坏。试图修复它会导致更多问题(我已经浪费了几天的时间)。期待装配尽管存在但不会加载,大量警告和应用程序损坏。
如果您使用System.Net.Http
,请计划花几天时间在Google和GitHub上试图让它发挥作用。
如果您可以升级到packageReferences,这应该可以解决问题。但是,如果您的项目包含导入内容的软件包,例如JQuery
或Bootstrap
,请注意这些内容不再有效,而您将花费更多时间来修复这些引用并迁移到{{1 }}或npm
,以及修复TypeScript编译。不,谢谢。
理想情况下,您使用的是2017 csproj格式,但它与WinForms,ASP.NET或Windows服务不兼容 - 如果您有遗留项目,那就太难了。
答案 2 :(得分:1)
我有一个完全相同的问题。我试图在空的控制台.NET Framework 4.7.1项目上安装Microsoft.Azure.ServiceBus软件包,并得到所有这些损坏的引用。
据我了解,根本原因是https://github.com/dotnet/standard/issues/567,此处介绍的可能的解决方法https://github.com/dotnet/corefx/issues/29622#issuecomment-396753264
所以我只替换了
之类的损坏的引用<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
</Reference>
在我的.csproj文件中
<Reference Include="System.Security.Cryptography.Primitives"/>
之所以起作用,是因为该程序集是.NET Framework 4.7.1的一部分。另外,我从.config文件中删除了有关损坏引用的所有绑定重定向。
此外,我发现了一个有趣的事实。有一个参考
<Reference Include="System.Runtime.Serialization.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll</HintPath>
</Reference>
并且它没有损坏,因为此程序集存在于... / MSBuild \ Microsoft \ Microsoft.NET.Build.Extensions \ net471 \ lib文件夹中。所以我想知道,这可能是MS构建的问题吗?
答案 3 :(得分:1)
FWIW,我使用的是Visual Studio 15.7.5,并手动修复了所有绑定重定向(以删除它们)。但是,我注意到我的同事有Visual Studio 15.9.4,并且在项目属性屏幕上现在有一个“自动生成绑定重定向”。我以前曾在csproj中手动设置。但是,更新到VS 15.9.4并重新构建项目对我来说摆脱了所有绑定重定向。