小编Wil*_*l L的帖子

System.*引入NETStandard.Library依赖时引用的麻烦

在一个包含52个项目(所有net462)的大型解决方案中,我们的一些依赖项的最新版本现在仅针对.NET标准构建.因此,它们依赖于NuGet包NETStandard.Library,而后者又拖入很多其他4.3.x版本的System.*软件包中,这些软件包通常位于.NET Framework本身.

因此,一些项目引用System.*packages文件夹中的System.*库,而其他项目引用.NET Framework中的库.

这导致众所周知的运行时问题,fe:

消息:System.IO.FileLoadException:无法加载文件或程序集'System.Net.Http,Version = 4.1.1.2,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

深入研究NETStandard.Library包的依赖关系,我们可以看到这些包中也存在同样的问题:

  • System.Collections中.*
  • System.ComponentModel.*
  • System.Console
  • System.Globalization.*
  • System.IO.*
  • System.Linq的.*
  • System.Net.*
  • System.ObjectModel
  • 的System.Reflection.*
  • System.Resources.ResourceManager
  • System.Runtime.*
  • System.Text.*
  • 的System.Threading.*
  • 的System.Xml.*

通常这是通过在其他项目中安装相同的软件包来解决的,但我们在这里处理了很多项目和很多软件包,我不想盲目地将所有这些依赖项添加到所有52个项目中.

这让我想知道是否有人知道从这种情况中恢复的简单方法,并使所有项目从NuGet包文件夹中引用正确的包/ DLL,如果它们当前使用.NET Framework内部的那个.

可以在此处找到针对net462和net471的简单VS解决方案来演示该问题

c# nuget visual-studio-2017

32
推荐指数
1
解决办法
2638
查看次数

层次结构中子级别总和的总和

除了针对预算和修订预算列的该值本身设置的任何值之外,我还需要将每个级别设置为所有子级(在层次结构中)的总和.

我已经包含了我的表结构的简化版本和一些示例数据,以说明当前正在生产什么以及我想要生成什么.

样品表:

CREATE TABLE Item (ID INT, ParentItemID INT NULL, ItemNo nvarchar(10), ItemName nvarchar(max), Budget decimal(18, 4), RevisedBudget decimal(18, 4));
Run Code Online (Sandbox Code Playgroud)

样本数据:

INSERT INTO Item (ID, ParentItemID, ItemNo, ItemName, Budget, RevisedBudget) VALUES (1, NULL, N'10.01', N'Master Bob', 0.00, 17.00);
INSERT INTO Item (ID, ParentItemID, ItemNo, ItemName, Budget, RevisedBudget) VALUES (2, 1, N'10.01.01', N'Bob 1', 0.00, 0.00);
INSERT INTO Item (ID, ParentItemID, ItemNo, ItemName, Budget, RevisedBudget) VALUES (3, 2, N'10.01.02', N'Bob 2', 2.00, 2.00);
INSERT INTO Item (ID, ParentItemID, ItemNo, ItemName, …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server hierarchy common-table-expression sql-server-2008-r2

8
推荐指数
1
解决办法
8979
查看次数

如何在nhibernate中复制和重试死锁

浏览我的日志,我可以看到我的应用程序容易出现死锁.它们出现在我的应用程序的许多部分中.

1)有没有办法复制这个问题.即:我只在日志中看到过这个.

2)如果事务被锁定,重试的最佳/最简单方法是什么?

3)如果我用try/catch包裹了这个电话.异常类型是什么.

有很多关于这个问题的文章.我总结说,最好的选择是尽可能地尝试缩短交易.我应该改变隔离级别吗?

nhibernate deadlock

7
推荐指数
1
解决办法
5348
查看次数