Tag: .net standard 2.0

应该兼容的不兼容的.NET标准程序集?

我有一个.NET Standard 2.0 DLL项目。 除了NETStandard.Library 2.0.1之外,它没有其他参考,一切都很好。 它由WPF应用程序引用,一切似乎都可以正常工作。 将System.Collections.Immutable 1.5.0的nuget包添加到DLL项目后,解决方案资源管理器的Dependencies根目录上会出现一个黄色感叹号。 (嗯……我现在看到感叹号仍然存在,即使我删除了这个包,但我想这是一个VS错误,因为在添加此库之前一切似乎都运行正常) 拥有这两个包,一切都很好,但是当我尝试使用ImmutableDictionary ,我得到了这个: System.IO.FileNotFoundException:’无法加载文件或程序集’System.Collections.Immutable,Version = 1.2.3.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 该系统找不到指定的文件。’ 看看nuget包,我知道这两个应该一起工作,因为(根据我的理解)’System.Collections.Immutable`库说它支持.NET标准2.0。 我是.NET标准世界的新手。 在我的主应用程序的bin文件夹中查看System.Collections.Immutable.dll公钥令牌,我发现它确实是b03f5f7f11d50a3a 。 但版本不同。 通常,在旧的.NET中,我会尝试在应用程序的配置文件中添加程序集重定向。 但在这里这样做似乎没有任何区别。 将此添加到我的引用DLL的WPF应用程序中: …将exception更改为: System.IO.FileNotFoundException:’无法加载文件或程序集’System.Collections.Immutable,Version = 4.0.11.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 该系统找不到指定的文件。’ 内在例外 FileNotFoundException:无法加载文件或程序集’System.Collections.Immutable,Version = 1.2.3.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 该系统找不到指定的文件。 这里发生了什么? 我不能一起使用这两个nuget包吗? 更新: 我现在注意到我得到的DLL版本来自System.Collections.Concurrent.dll ,而我对System.Collections.Immutable.dll感兴趣,这在我的bin文件夹中找不到…我甚至都没有找到nuget包存储在我的解决方案中的位置。 更新2: 事实certificate,当我创建具有类似设置的新解决方案(引用.NET Standard 2 […]

更新Service Fabric服务时,.Net Framework类库dll总是会更改

我有一个在Service Fabric中运行的无状态.Net Core服务。 在我的服务中,我引用了一个针对.Net Framework 4.7.1的类库。 我通过VSTS部署应用程序,其中一个构建步骤更新了带有更改的服务的应用程序版本。 https://docs.microsoft.com/en-us/vsts/build-release/tasks/utility/service-fabric-versioning 除了始终检测到类库的dll文件的更改外,一切正常。 即使我没有改变代码库中的任何东西! 这会导致构建步骤影响每个服务的版本。 不只是实际有更新的服务。 日志看起来像吼叫。 ‘MyClassLibrary.dll’是一个.Net Framework类库,我没有触及过代码。 2018-03-12T11:39:51.1989307Z Searching service ‘MyServicePkg’ for changes… 2018-03-12T11:39:51.2247570Z Searching package ‘Code’ for changes… 2018-03-12T11:39:51.9878149Z The file ‘MyClassLibrary.dll’ has changed. 2018-03-12T11:39:54.3850926Z Updated package ‘MyServicePkg\Code’ from version ‘1.0.0’ to ‘1.0.1’. 我知道代码包中的更改检查是二进制比较。 所以二进制文件在编译时显然会发生变化。 但是,我不知道为什么。 我还有针对.Net Standard 2.0的代码库,它们不会导致此问题,因为只有在我实际触及代码时才会检测到更改。 我也知道可以手动省略不应该从应用程序包https://stackoverflow.com/a/34886586更新的文件。但是,这不是一个选项,因为部署链是自动的。 所以我有以下问题: 是什么原因导致.Net Framework类库的二进制文件发生变化? 它与.Net标准类库有何不同? 我如何解决它,以便我的服务只在我做出真正的更改时更新? 从.Net […]

错误索引方法’Class.Method’无法将参数’log’绑定到类型TraceWriter

我已经将一堆我的Azurefunction“升级”为.netstandard 2.0,我收到以下错误: 错误索引方法’Class.Method’无法将参数’log’绑定到类型TraceWriter。 确保绑定支持参数Type。 如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等)。 根据该问题的答案,我确保拥有最新版本的Azure Functions and Web Jobs Tools :它运行的是15.0.40322.0。 不过,我有同样的错误。 我知道运行.netstandard 2.0的Azurefunction处于测试阶段。 我错过了什么?

从.net标准库中读取appsettings.json

我已经使用.NET Core Framework启动了一个新的RESTful项目。 我将我的解决方案分为两部分:Framework(一组.NET标准库)和Web(RESTful项目)。 使用Framework文件夹,我提供了一些用于进一步增强web项目的库,并且我想提供一个带有通用方法T GetAppSetting(string Key)的Configuration类。 我的问题是:如何在.NET Standard中访问AppSettings.json文件? 我已经找到了很多关于阅读这个文件的例子,但所有这些例子都将文件读入了web项目,没有人将这个文件读入一个extarnal库。 我需要它为Others项目提供可重用的代码。

如何从.Net核心应用程序中的SQL语句获取标量值?

.Net核心控制台应用程序(EF核心2.0 / Sql服务器)中的以下代码。 var sql = _context.Set() .FromSql(“select dbo.FunctionReturnVarchar({0});”, id); 得到以下exception? 无法为“字符串”创建DbSet,因为此类型未包含在上下文的模型中。 这是一种没有定义具有字符串属性的类的方法吗?

如何从UWP访问Net Standard 2.0类库中的内容

我们有一个UWP应用程序,它引用了一个UWP类库。 UWP类库有一个Common文件夹,其中包含运行时所需的文件。 这些文件标记为“复制为内容”。 文件将复制到..\UWP\bin\x64\Debug\Appx\\Common 。 应用程序在运行时在package.InstalledLocation\\Common查找这些文件 UWP类库现在是.NET Standard 2.0类库。 在运行时,Common文件夹现在被复制到与Appx文件夹相同级别的文件夹..\UWP\bin\x64\Debug\Common ,我无法访问。 我试过了 StorageFolder installedFolder = package.InstalledLocation; StorageFolder parentFolder = await installedFolder.GetParentAsync(); 但是parentFolder返回null 。 如何访问.NET Standard 2.0类库中的内容文件和文件夹?

尝试在.Net Standard项目中设置Entity Framework核心

我想知道我是否可以轻松地在.NET Standard 2.0项目中设置我的EntityFrameworkCore。 我正在学习本教程,但它需要.NET Core或Framework。 当我到达这一步时: Scaffold-DbContext “Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 我收到了这个错误: 启动项目’projectName’的目标是框架’.NETStandard’。 没有与此框架关联的运行时,并且无法直接执行以其为目标的项目。 要将Entity Framework核心软件包管理器控制台工具与此项目一起使用,请添加一个针对引用此项目的.NET Framework或.NET Core的可执行项目,并将其设置为启动项目; 或者,更新此项目以跨目标.NET Framework或.NET Core。 我想知道我是否可以在.NET Standard中设置我的实体,或者是否有我应该做的最佳实践?