播种大吴风草多长时间发芽?

小说:播种大吴风草多长时间发芽?作者:戏安海成更新时间:2019-04-21字数:12800

郭子仪大声问道,夜色中,他见这两名骑兵表情皆惶惶然,心中生出一种不妙之感。

连翘小苗哪家好?

“异能,这东西很稀有吗?”唐欣的嘴角浮现出了一丝不屑的微笑,手中的火焰熊熊的燃烧着,犹若黑夜中舞动的精灵一般。
但他们也发生了一些变化,除了唐三以外,其他的六个人此时全都闭上了双眼。阵型也已经改变,竟然像是有些模仿对手,除了唐三以外的六个人围成一圈,而唐三就在阵型的中央位置。

大师摇了摇头,“这其中涉及到政治、权力和各种利益,远不是你想的那么简单。你现在还小,还是不要了解这些为好。你们现在要做的,就是尽可能的提升自己的实力。想要获得最后的冠军,你们真正的对手就只有一个。那就是武魂殿派出的那支队伍。我虽然不能肯定他们的实力达到了什么程度。但我想,他们的厉害,一定在皇斗战队和五大元素学院之上。武魂殿真正的实力,比任何人想象的都要强大。”

你是否曾经有过这种感觉:即使代码没有改变,Visual Studio也总是在重新生成项目?

我们可以生成一个项目,然后不做任何处理后再次生成,我们就可以看见——VS正在开始生成项目,而我的项目代码并没有做任何更改。

当我们改变了一些代码,VS在Build时会生成新的项目,这是容易理解的。但代码并没有更新的情况下,项目也会重新生成。这个问题着实困扰了我。带着这个疑问,我做了进一步的探索。

问题分解

我们在这里列出了两个不同的问题:
1)即使项目没有改变,VS也会重新生成项目。
2)当有些东西发生了变化,VS倾向于生成比需要更多的项目。
让我们看看这两个问题的探索结果。

即使项目没有改变,VS也会重新生成项目

即使项目没有改变,VS也会重新生成项目。我们看看这个问题产生的根源。

在我们的解决方案中,转到Tools - > Options。 选择Projects and Solutions - > Build and Run,然后在“MSbuild项目生成输出详细信息”中选择** Diagnostic **。

使用中文版的童鞋,请自行转到工具 - > 选项。 选择项目和解决方案 - > 生成并运行,然后在“MSbuild项目生成输出详细信息”中选择诊断

这样设置后,生成项目将会变得更慢,但会显示为什么需要重新生成。

每当需要重新生成项目时,我们都会看到这样的信息:

在“Output”窗口中,我们可以看到正在重新生成的内容以及原因。例如,我们看到我们有一个“Copy always”属性的图片。

让我们来回顾一下为什么会出现这个问题。

资源设置为“Copy always”

回顾我们刚刚看到的例子。 Copy always,就像这句话的字面意思一样,没有任何理由,谁也阻止不了我的那颗复制的心。 其实是有办法替换Copy always这个选项的。 我们可以在解决方案资源管理器中找到资源文件,按F4查看属性并更改“Copy to output directory”(复制到输出目录)字段。

将CopyLocal的引用设置为true,但VSIX项目并不适用

如果在CopyLocal字段中(在引用属性中)将其设置为True,则会遇到此问题。 简单地说,设置CopyLocal为False解决了这个问题。但这一做法对VSIX项目不适用。VSIX文件中嵌入了所有内容, 因而不需要复制本地文件。

循环依赖

在.NET项目中添加循环依赖是有点困难的。 VS不允许我们直接引用一个项目, 但是我们可以在项目的输出中引用.dll文件。

假设我们有一个引用项目B的项目A.
在项目B中,我们可以添加对A的输出文件路径(AinDebugA.exe)的引用。

这是一个看似不赖的循环依赖, 但这将导致两个项目每次都会重新生成。

除了去掉项目中的循环依赖,我们没有更好的解决办法。

这些是我知道导致这个问题的原因。如果您遇到更多的原因,请对其进行评论,然后我会添加到这篇文章中。

现在让我们看看另一个问题。

当有些东西发生了变化,VS倾向于生成比需要更多的项目

这不仅仅我的个人感觉,MSBuild以一种特定的方式工作,有时会做更多的工作。下面是这个问题的重现:

假设我们有一个引用项目B的项目A。在项目B中,我们有一个项目A使用的公共函数Foo()。

如果我们将Foo()更改为Foo(int x),那么A必须重新生成。但是,如果我们改变Foo()内部的逻辑,那么编辑器没有理由重新生成A,只需重新生成B即可。但事实上MSBuild将重新生成A和所有引用B的项目。

我认为MSBuild只是根据修改日期工作。如果A引用B,并且使用者在修改A.dll之后修改了B,那么MSBuild也将重新生成A。

我们对此可以做些什么?

大名鼎鼎的ReSharper应该可以解决这个问题。 ReSharper Build是ReSharper自带的,不需要额外的许可证。有关ReSharper的资料,请参阅:
https://www.cnblogs.com/zhaoqingqing/p/3895427.html

ReSharper Build还有其他很酷的功能,可以让你的生成更快。

结语

最严重的浪费就是时间的浪费。对时间宝贵程序猿来说,那些额外的不必要的生成真的很恼人。期待微软在以后Visual Studio版本中解决这个问题。

编辑:成龙

发布:2019-04-21 00:00:00

当前文章:http://adsl66.com/news/2019020442940/index.html

绣球花能种在室外吗? 火棘价格今年怎么样? 10公分日本紫藤树价格贵吗? 紫藤老桩什么时候栽培呢? 青枫黄金槐优秀的园林绿化行道树 想买到便宜货又好的地柏,要学会这三招! 专家分析2016年下半年小叶黄杨多少钱一株? 最新最全的水杉树移栽、养护技术汇总!

46079 67917 98573 12691 86082 29153 89674 47098 47324 90083 52270 65843 66312 95543 11893 51151 22494 65855 87556 96268

我要说两句: (0人参与)

发布