在一个包含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包的依赖关系,我们可以看到这些包中也存在同样的问题:
通常这是通过在其他项目中安装相同的软件包来解决的,但我们在这里处理了很多项目和很多软件包,我不想盲目地将所有这些依赖项添加到所有52个项目中.
这让我想知道是否有人知道从这种情况中恢复的简单方法,并使所有项目从NuGet包文件夹中引用正确的包/ DLL,如果它们当前使用.NET Framework内部的那个.
可以在此处找到针对net462和net471的简单VS解决方案来演示该问题
除了针对预算和修订预算列的该值本身设置的任何值之外,我还需要将每个级别设置为所有子级(在层次结构中)的总和.
我已经包含了我的表结构的简化版本和一些示例数据,以说明当前正在生产什么以及我想要生成什么.
样品表:
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
浏览我的日志,我可以看到我的应用程序容易出现死锁.它们出现在我的应用程序的许多部分中.
1)有没有办法复制这个问题.即:我只在日志中看到过这个.
2)如果事务被锁定,重试的最佳/最简单方法是什么?
3)如果我用try/catch包裹了这个电话.异常类型是什么.
有很多关于这个问题的文章.我总结说,最好的选择是尽可能地尝试缩短交易.我应该改变隔离级别吗?