小编Mel*_*els的帖子

JIT编译器如何处理值类型?

我正在Jon Skeet深入阅读C#.引自第三章:

JIT可以以一种特别聪明的方式处理价值类型,在许多情况下设法消除装箱和拆箱.在某些情况下,这可以在速度和内存消耗方面对性能产生巨大影响.

有人可以解释这究竟意味着什么,最好是一个例子吗?

c# jit

5
推荐指数
1
解决办法
225
查看次数

MSBuild 4.0在XMLQuery任务(来自MSBuild社区任务包)上失败,错误为MSB4018

我们使用MSBuild来运行一个项目,该项目通过社区任务包中的XMLQuery任务从XML文件中读取一些值.它在MSBuild 3.5下工作正常但在4.0下运行时失败并显示以下消息:

错误MSB4018:"XmlQuery"任务意外失败.System.Xml.XmlException:名称不能以'%'字符开头,十六进制值0x25.第1行,位于System.Xml.XmlTextReaderImpl.Throw(Exception e)的System.Xml.XmlTextReaderImpl.Throw(String res,String [] args),位于System.Xml.XmlTextReaderImpl.ParseQName(布尔值isQName,Int32 startOffset, System32下的System.Xml.XmlTextRemplImpl.ParseDocumentContent()中的System.Xml.Xml.XT文档中的System.Xml.XmlTextRemplImpl.ParseElement()中的System32.Xml.XPath.Dod.LoadFromReader(XmlReader阅读器,XmlSpace空间)在Microsoft.Build.BackEnd上的MSBuild.Community.Tasks.Xml.XmlQuery.Execute()中的MSBuild.Community.Tasks.Xml.XmlQuery.loadXmlContent()上的System.Xml.XPath.XPathDocument..ctor(TextReader textReader)中. TaskExecutionHost.

用于从构建目标中调用XMLQuery的代码:

<!-- Read XML report -->
<ReadLinesFromFile File="coverageXML\symbolmodule.xml">
  <Output TaskParameter="Lines" ItemName="XmlReportLines" />
</ReadLinesFromFile>
<!-- Get number of visited sequence points -->
<XmlQuery Lines="@(XmlReportLines)" XPath="/trendcoveragedata/stats/@vsp">
  <Output TaskParameter="Values" PropertyName="VisitedSequencePoints" />
</XmlQuery>
Run Code Online (Sandbox Code Playgroud)

我只是无法理解什么是错的.XML文件完全有效,XMLQuery中指定的XPath应该返回一个值(并且总是有).我无法在任何地方找到单个%字符.

我不知道如何以及从何处开始解决这个问题......任何指向正确方向的人都会受到赞赏.

.net msbuildcommunitytasks msbuild-4.0

2
推荐指数
1
解决办法
1698
查看次数

在csharp中删除文件到回收站,VB的FileSystem.DeleteFile方法无法正常工作

我有一段代码调用 Microsoft.VisualBasic.FileIO.FileSystem 类(在 Microsoft.VisualBasic 程序集中)中的 DeleteFile 方法,以便将文件发送到回收站而不是永久删除它。此代码位于托管 Windows 服务中,并在 Win Server 2k8 计算机(32 位)上运行。

相关行:

FileSystem.DeleteFile(file.FullName, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin, UICancelOption.DoNothing);
Run Code Online (Sandbox Code Playgroud)

当然,我有“using Microsoft.VisualBasic.FileIO;” 在类的顶部,我验证了被调用的方法确实位于该命名空间中的 FileSystem 类上。在上面的行中,我引用了一个本地变量“file” - 这是本地文件的 FileInfo(例如,C:\path\to\file.txt),我确信它存在。应用程序可以完全控制文件及其所在的目录。

当文件从其所在的目录中消失时,这似乎工作得很好。但是,该文件不会显示在回收站中。我尝试手动检查 C:\$Recycle.Bin 文件夹,因为我怀疑会话 0 中运行的 Windows 服务会使其最终进入不同的回收站,但所有回收站都显示为空。

有人知道导致这种行为的原因吗?

顺便说一句 - 机器上的相关驱动器(或任何其他驱动器)上绝对没有可用空间不足,并且文件非常小(几千字节,因此它不会超过回收站阈值)。

.net c# file-io recycle-bin delete-file

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