我有我的工作,它包含4个类库项目(一个解决方案A
,B
,C
,D
).A
并且B
可以被认为是解决方案中的顶级项目.两者A
和B
参考C
,并且D
独立.
这四个项目代表了我处理自动化工作流程的一组服务.它们都是密切相关的,只会在一个位置(服务管理器)使用,所以我不想将它们分成不同的解决方案.
我的问题是我想创建一个包含所有4个库的NuGet包,而不必全部构建它们并手动收集它们的DLL.我知道我可以从技术上实现这一点,A
或者B
参考其余的项目,但这不是真正的关系,我觉得应该避免.
我已经做了很多关于这个问题的搜索,除了手动收集DLL并自己构建包之外,我找不到解决方案.有没有办法达到我想要使用NuGet的功能/能力的结果?
注意:如果标签不清楚,我目前正在使用带有TeamCity构建服务器的VS2010.如果它是相关的,我也通过Stash服务器使用Git.
编辑:我刚刚意识到这可能很重要,值得一提.这些项目确实引用了我需要标记为依赖项的其他NuGet包.
我有一组运行 iOS 9.3.5 的 iPad(第 3 代)。这是他们支持的最高水平。我正在尝试用等效的 Web 应用程序替换自定义 iOS 应用程序的功能。该站点是用 Angular 11 构建的,目标是es2015
,并且我已经在浏览器支持文件中声明了 iOS > 9。该网站的大部分内容与我对此类旧设备的预期完全相同。整个事情的关键是这个需要填写的第三方表单,它作为 iframe 提供,它的表现如此,非常糟糕。
这是带有 iframe 的组件 HTML 代码(出于隐私原因更改了 URL):
<div class="row header"><a class="restart" (click)='restart()'>Start Over</a><a routerLink='/welcome'><i class="fa fa-times close-x"></i></a></div>
<iframe src="https://notarealsite.com" (load)="waiverLoaded()"></iframe>
Run Code Online (Sandbox Code Playgroud)
该waiverLoaded
函数是一个简单的布尔翻转,用于检测嵌入页面在完成后重新加载,以便我可以路由到我的应用程序中的不同组件。如果 iframe 是页面上的唯一元素,则性能不变。嵌入时运行良好的其他页面不会像弃权那样遭受性能下降,因此我必须假设它是弃权页面的代码中的某些内容。
原始的自定义 iOS 应用程序使用 webviewer 加载页面,加载时间为 2 秒或更短。直接在 Safari 中访问页面可以看到相同的性能。在这两种情况下,考虑到设备的使用年限,动态形式的响应能力是合理的。当通过 iframe 加载页面时,性能坦克。我们正在谈论 30-45 秒的加载,有时在点击按钮或字段和表单反应之间长达一整秒的延迟。
我已将设备连接到我的计算机并使用 MacOS Safari 中的远程检查器查看时间线。大部分初始加载时间是表单使用的几个 1-2 kb 图像文件,如滚动条和一些图标。通常这些项目之一最终需要 20-25 秒。当与表单交互时,时间线中会出现一个 XML 资源,每次字段更改或按钮按下时都会出现,这需要大约一两秒钟才能使页面再次更新。
我不太精通像这样的 Web 应用程序性能故障排除,这是我构建的第一个真正的 Angular 应用程序,所以我可能会遗漏一些非常明显的东西。是什么导致直接访问的页面与放置在 iframe 中的页面之间的性能差异?
一些额外的信息:
npm serve …
目标是创建一个函数,使用Nodatime将时间从一个时区转换为另一个时区.我不只是在寻找关于结果是否正确的反馈,而是针对"我如何"这样做的反馈(这是真的正确,还是有微妙的漏洞).
这是功能:
static ZonedDateTime ConvertDateTimeToDifferentTimeZone(DateTime p_from_datetime, string p_from_zone, string p_to_zone)
{
DateTimeZone from_zone = DateTimeZoneProviders.Tzdb[p_from_zone];
LocalDateTime from_local = new LocalDateTime(p_from_datetime.Year, p_from_datetime.Month, p_from_datetime.Day, p_from_datetime.Hour, p_from_datetime.Minute);
ZonedDateTime from_datetime = from_zone.AtStrictly(from_local);
var from_instant = from_datetime.ToInstant();
DateTimeZone to_zone = DateTimeZoneProviders.Tzdb[p_to_zone];
ZonedDateTime to_datetime = to_zone.AtStrictly(from_local);
var to_offset_datetime = from_instant.WithOffset(to_datetime.Offset);
return to_zone.AtStrictly(to_offset_datetime.LocalDateTime);
}
Run Code Online (Sandbox Code Playgroud)
我称之为的方式如下:
DateTime from_datetime = new DateTime(2016, 10, 15, 16, 30, 0);
string from_zone = "US/Central";
string to_zone = "US/Eastern";
var x = ConvertDateTimeToDifferentTimeZone(from_datetime, from_zone, to_zone);
Console.WriteLine(from_datetime.ToString() + " (" + from_zone + ") …
Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题.我for
在我的应用程序中使用循环进行了大量数据外推.在几乎所有情况下,我倾向于发现i <= 2
比阅读/解释更容易i < 3
.根据我的知识,他们应该总是意味着相同的事情,但我想知道是否有特殊情况,在for
循环中使用它们时会有不同的评价.例如,如果您使用++i
而不是i++
.
免责声明:我没有太多的SQL经验,我不知道我的公司使用的是哪个版本的Oracle.
我有一个产品价格表,明天需要更新.有数千条记录将会更新,但还有一千条记录将不会被更新.
现在我对每条记录都有一个更新语句,虽然我可以将它们全部作为脚本运行,但我希望得到一些关于更新了多少记录的反馈,如果可能的话,哪些语句失败了.
如果我运行我作为脚本运行的东西,我将最终得到大约5,000"1行更新"消息,如果我看到"0行更新",则不知道哪一个失败了.
是否有某些形式的脚本我可以使用它来捕获故障,或者至少收集更新为一个总数的行数?
我有一个List<T>
地方T
是一个自定义对象Cow
.现在我使用以下代码基于分割该列表Color
.
cowGroups = from x in cows
group x by x.Color into y
select y.ToList().ToList();
Run Code Online (Sandbox Code Playgroud)
然后我拿起cowGroups
并运行foreach
它来为每个人做一组动作Cow
.这个清单实际上是出来的IEnumerable<List<Cow>>
我要做的是在我的首字母上做一个双重分组,List<Cow>
这样我就可以根据它们的颜色和大小进行分组.结果应该仍然是IEnumerable<List<Cow>>
,但每个List<Cow>
都是基于颜色和大小的组合.
一位同事推荐了一种ToLookup
方法,但它会返回一个键/值对的列表,而我似乎无法对该对的值部分做任何事情.
我想我正在寻找直接进入列表集合的方法,或者将方法的结果ToLookup
转换为列表集合.
我正在使用MVP模式构建应用程序.为了在演示者中发生事情,我在视图中创建事件,演示者将观察它们.ReSharper给我一个关于可能的空引用异常的警告,我看到在触发事件之前检查null的教程.事件究竟能以何种方式为空?以下是我的代码示例:
public partial class PrinterSelectView : Form, IPrinterSelectView
{
public PrinterSelectView()
{
InitializeComponent();
}
public event Action Canceled;
public event Action Saved;
private void btnCancelClick(object sender, EventArgs e)
{
if(Canceled != null)
{
Canceled();
}
}
}
Run Code Online (Sandbox Code Playgroud)