【问题标题】:ProcessStartInfo does not contain a definition for 'Verb'ProcessStartInfo 不包含“动词”的定义
【发布时间】:2017-11-03 20:43:59
【问题描述】:

我确实有这个问题,ProcessStartInfo 不包含定义动词,所以我不能做'runas'。在 VisualStudio 2015 上,使用 ProcessStartInfo 的项目 'foo' 确实有这个定义 'verb' - 通过检查类来确认。在 VisualStudio 2017 上运行的其他项目似乎无法识别此方法。此外,该类本身缺少该方法。现在我不确定为什么以及如何做到这一点?

完整的错误代码:

Severity    Code    Description Project File    Line    Suppression State
Error   CS1061  'ProcessStartInfo' does not contain a definition for 'Verb' 
and no extension method 'Verb' accepting a first argument of type 
'ProcessStartInfo' could be found (are you missing a using directive or an 
assembly reference?)    project3cx  C:\Users\Boss\Documents\Visual Studio 
2017\Projects\project\project3cx\Program.cs 64  Active

ProcessStartInfo 类的唯一区别是版本为 4.0.0.0

#region Assembly System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.dll
#endregion

有定义“动词”并且版本 4.1.0.0 没有定义动词。

#region Assembly System.Diagnostics.Process, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// C:\Users\Boss\.nuget\packages\system.diagnostics.process\4.3.0\ref\netstandard1.4\System.Diagnostics.Process.dll
#endregion

我还可以看到一个项目程序集由 nuget 管理,另一个不是。我已经安装/更新了 nuget System.Diagnostics 包,但无济于事。有什么帮助吗?

【问题讨论】:

  • 看看程序集名称:System.Diagnostics.Process.dll vs System.dll
  • 你能显示代码吗?属性还是there
  • 这里出了点问题——Verb 是一个属性。扩展属性(还)不是一件事。然而错误表明它正在寻找扩展方法。虽然无法看到代码,但很难提供帮助。
  • 注意你选择的项目模板,.NETCore 和 .NETStandard 不支持 Verb。一个纯 Windows 功能,它完全不能移植到 Linux 和 MacOS。 UAC 提升也是如此。
  • @HansPassant 我明白了,是的,我正在尝试开发 2 个控制台应用程序,一个用于 Windows,一个用于 linux。我不知道 verb 仅适用于 Windows。

标签: c# visual-studio nuget nuget-package system.diagnostics


【解决方案1】:

ProcessStartInfo 类的唯一区别是版本为 4.0.0.0。有定义“动词”并且版本 4.1.0.0 没有定义动词。

正如 Hans 所说,您需要“注意您选择的项目模板”。我在这里更详细地重复答案,以便遇到相同问题的其他社区成员可以更轻松地找到答案。

根据the question on GitHub的回复,.NET Core/.NET Standard不支持ProcessStartInfo.Verb

我已将其标记为错误,因为此 API 不应该出现在我们的文档中,因为 .NET Core 不支持它。它需要从文章中删除。 @chenkennt、@bradygaster 文档中出现的另一种不属于 .NET Core 的 API。

此外,动词和动词都将作为 .NE Standard 2.0 的一部分回归。

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多