小编pau*_*sm4的帖子

如何获取C#控制台应用程序的.exe名称?

我正在调试VS2008中的C#控制台模式应用程序"xiixtasks.exe".

我正在尝试从xiixtasks.exe获取版本信息.

当我尝试"Process.GetCurrentProcess()"时,它为我提供了vshost.exe的文件名和版本信息,而不是xiixtasks.exe:

  // WRONG: this gives me xiixtasks.vhost.exe, version 9.0.30729.1
  //        I *want* "xiixtasks.exe", version 1.0.0.1024
  System.Diagnostics.FileVersionInfo fi =
    System.Diagnostics.Process.GetCurrentProcess().MainModule.FileVersionInfo;
Run Code Online (Sandbox Code Playgroud)

我应该做什么呢?

先感谢您!

================================================== ====

解:

1)最初的问题确实是IDE的"vshost"包装器.一种解决方法是更改​​构建设置.

2)Assembly.GetExecutingAssembly().CodeBase是一个很好的解决方案 - 谢谢!它在调试器内部和外部工作.

3)不幸的是,当我尝试用一​​个预期正常文件路径的函数调用它(而不是像GetExecutingAssembly()"给你"这样的URI)时,它死于"不支持Uri格式"异常.

4)最终解决方案:调用GetExecutingAssembly(),然后调用Uri.LocalPath():

...
else if (cmdArgs.cmd.Equals(CmdOptions.CMD_SHOW_VERSION))
{
    string codeBaseUri = 
       Urifile.System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
    string codeBase =
        new Uri (codeBaseUri).LocalPath;
    string sVersion = Util.GetWindowsVersion(codeBase);
    System.Console.WriteLine ("version({0}): {1}: ",
        Util.Basename(codeBase), sVersion);
}
Run Code Online (Sandbox Code Playgroud)

全部再次感谢你!

c# fileversioninfo

20
推荐指数
3
解决办法
2万
查看次数

为什么不调用我的C#Soap扩展?

我有一个调用Java Web服务的C#Winforms客户端.该服务被正确调用并返回预期的结果.

我一直在努力,直到我脸红了才能添加肥皂扩展.它编译正确,我完全有理由相信它已经注册了......但它永远不会被调用.我尝试修改app.config; 我试着调用"wss.SoapExtensionTypes.Add(soapInterceptor)":同样的事情.我的SoapException的"Initalize()"和"ProcessMessage()"函数根本就不会被调用.

问:有什么建议吗?任何调试技巧?

ClientTraceExtension.cs =>

using System;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Services.Configuration;
using System.IO;
using System.Net;
using System.Reflection;
using System.Security.Permissions;
using GITSearchClient.ServiceReference1;

/*
 * REFERENCE:
 * http://msdn.microsoft.com/en-US/library/system.web.services.protocols.soapextension%28v=vs.90%29.aspx
 */
namespace GITSearchClient
{
    public class ClientTraceExtension : SoapExtension
    {
        private Stream oldStream;
        private Stream newStream;
        private string filename = "c:\\temp\\soap_result.txt";

        // Custom SoapExtension must override: ChainStream, GetInitializer()x2, Initialize() and ProcessMessage()
        public override Stream ChainStream(Stream stream)
        {
            oldStream = stream;
            newStream = new MemoryStream();
            return newStream;
        }

        public override object …
Run Code Online (Sandbox Code Playgroud)

.net c# soap-extension

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

VS2010/C#:如何在IDE中设置ComboBox的默认值?

我正在使用Visual Studio 2010在C#中编写Windows窗体应用程序.

它有一个组合框.我将DropDownStyle设置为"DropDownList",并在"Items"中添加了几行.

问:我有没有办法在"属性"编辑器中设置SelectedItemIndex,这样当"组合框"出现时,"Items"集合中的行将显示为默认值?

我知道我可以编程在我的Form_Load方法设置"myComboBox.SelectedItemIndex = NNN",但我SURE可能有一些方法来做到这一点的MSVS IDE了.

有任何想法吗?

先感谢您!

c# combobox winforms

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

Node.js:你如何处理循环中的回调?

我正在使用Node.js和Box SDK.我的(失败!)代码如下所示:

var connection = box.getConnection(req.user.login);
connection.ready(function () {
  connection.getFolderItems(0, null, function (err, result) {
    if (err) {
      opts.body = err;
    } else {
      opts.body = result;
      var a = [];
      for (var i=0; i < result.entries.length; i++) {
        connection.getFileInfo(result.entries[i].id, function (err, fileInfo) {
        if (err) {
          opts.body = err;
        } else {
          a.push(fileInfo);
        }
      });}
    }
Run Code Online (Sandbox Code Playgroud)

在"程序"术语中,这是我想要做的:

var connection= box.getConnection()
var items = connection.getFolderItems()
var itemList = new List
foreach (item in items) {
  connection.getFileInfo(item.id)
  itemList.add(item)
}
display(itemList)
Run Code Online (Sandbox Code Playgroud)

我的问题是, …

asynchronous for-loop node.js

8
推荐指数
2
解决办法
8641
查看次数

URL.createObjectURL(blob):如何为动态生成的.pdf提供“有意义的文件名”?

我正在调用Web服务以生成.pdf,然后使用createObjectURL和iframe进行打印和显示:

    var title = "Claim-" + this.claimNumber + "-" + new Date() + ".pdf";
    var blob = new Blob([wsRequest.response], { type: 'application/pdf' });
    blob.name = title;
    if (browser() === 'IE') {
        window.navigator.msSaveOrOpenBlob(blob, title);
    } else {
        var fileURL = URL.createObjectURL(blob);
        var win = window.open();
        win.document.write('<iframe name="' + title + '" src="' + fileURL + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>');
        win.document.title = title;
Run Code Online (Sandbox Code Playgroud)

对于IE来说,它的工作原理非常好:.pdf出现在Acrobat Reader中,它可以显示,我可以打印...并且它的文件名“有意义”。

对于Chrome /嵌入式.pdf查看器,它也可以正常运行:它显示在自己的标签中,并且该标签具有“有意义的文件名”。

但是,如果Chrome在Acrobat Reader中显示图像,请执行以下操作:

a)我得到一个新的空白标签(带有“有意义的名称”)

b)Acrobat显示一个GUID-由createObjectURL()分配的GUID:

示例:“ blob:http//192.168.116.170 …

javascript iframe html5

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

为什么 PHP 7.2 fopen(/tmp, a) 不写入文件?

我有一个旧的“PHPDBG”函数,可以让我“printf”到文本文件。

我“从永远”开始使用PHPDBG.inc(至少从 PHP 4.x 时代起),但它似乎无法在我当前的配置(ubuntu18、Apache 2.4.29 和 PHP 7.2)中工作。

具体来说:

  • 我无法打开该文件($fp 为空)...
  • /tmp/PHPDBG.txt 永远不会被创建(因为 fopen 失败)
  • /tmp 应该是世界可写的......并且......
  • 我似乎无法在 Apache error.log 中获取 PHP 错误,也无法从 或 中获取任何有意义的error_get_last()内容$php_errormsg

这是测试代码:

测试.php:

<?php
  function PHPDBG ($s) {
    $fp = fopen ("/tmp/PHPDBG.txt", "a");
    if ($fp) {
      // Successful open ... but nothing written!
      fputs($fp, $s . "\n");
      fclose($fp);
    } else {
      echo "<h3>FILE OPEN ERROR</h3>\n";
      echo "<p>" . print_r(error_get_last()) . "</p>\n";
      echo "<p>" . $php_errormsg . "</p>\n";
    }
  } …
Run Code Online (Sandbox Code Playgroud)

php fopen systemd

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

ASP.Net Core:如何获取无效 ModelState 值的键?

我的 .Net 5./ASP.Net MVC 应用程序中有一个“编辑”页面。如果ModelState.IsValid是“false”,我想在拒绝整个页面之前检查各个错误。

问题:如何获取列表中无效项目的“名称” ModelState

例如:

  • 处理程序方法:public async Task<IActionResult> OnPostAsync()

  • if (!ModelState.IsValid): “错误的”

    this.ModelState.Values[0]: SubKey={ID}, Key="ID", ValidationState=无效 Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry {Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ModelStateNode}

代码:

foreach (ModelStateEntry item in ModelState.Values)
{
    if (item.ValidationState == ModelValidationState.Invalid)
    {
        // I want to take some action if the invalid entry contains the string "ID"
        var name = item.Key;  // CS1061: 'ModelStateEntry 'does not contain a definition for 'Key'
        ...
Run Code Online (Sandbox Code Playgroud)

问题:如何从每个无效的 ModelState“值”项中读取“键”???


解决

我的基本问题是迭代“ModelState.Values”。相反,我需要迭代“ModelState.Keys”才能获取所有必需的信息。

解决方案1)

foreach (KeyValuePair<string, ModelStateEntry> modelStateDD in …
Run Code Online (Sandbox Code Playgroud)

c# modelstate asp.net-core-mvc .net-5

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

从 springboot 发送推送通知

我有一个 springboot 应用程序,我在自己的家庭服务器上托管该应用程序。我也有 sql 数据库设置。

\n

对于前端,我\xe2\x80\x99m 计划使用 android 进行初始测试阶段,然后将其转移到 flutter。

\n

我想知道如何从 Spring Boot 向前端应用程序发送通知。我看过一些关于如何通过 fire base 发送它的文章,但我想知道是否有\xe2\x80\x99s 另一种方法可以在不使用外部服务的情况下实现相同的目的。

\n

我已经在 3 台电脑上设置了运行 Ubuntu 的服务器,该服务器对我的应用程序进行负载平衡,并希望使用其中一台来发送推送通知。

\n

notifications push-notification android-studio spring-boot flutter

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

如何让Powerpoint在动画中调用我的VBA子程序?

ShellExecute()每次我的PowerPoint幻灯片放映中出现一张新幻灯片时,我最终想要做的是一个命令行程序.我正在使用Office 2003 PowerPoint.

我做了以下事情:

  1. 工具>选项>安全选项>宏安全>安全级别=中

  2. 工具>选项>> VBA编辑器:

    Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
      MsgBox ("OnSlideShowPageChange")
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)
  3. 文件>保存

  4. 返回PowerPoint :( F5适用于幻灯片放映>查看显示).没有看到消息框

  5. 退出PowerPoint,F5再次重新打开.ppt文件.仍然没有看到消息框

问题:我错过了什么?为什么OnSlideShowPageChange在我运行幻灯片放映时没有被调用?

powerpoint vba powerpoint-vba

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

在 Azure DevOps 中的不同项目之间共享变量

希望你们一切都好!

我需要问一个关于azure devops的问题,我已经阅读了文档,但是我没有找到解决这些疑问的方法

我有 X、Y 和 Z 项目,并在 X 项目中在管道 >> Libray中创建一组称为常规的变量,我希望与 Y 和 Z 管道共享,在配置该组时我启用了选项“允许访问所有管道”。

在 Y 和 Z 管道的 YAML 中,我进行了以下配置:**变量:

  • 组:一般**

运行管道时,他返回一个授权请求,甚至单击授权,根据下面的打印:

打印授权错误

There was a resource authorization issue: 
"An error occurred while loading the YAML build pipeline.  
 Variable group was not found or is not authorized for use.  
 For authorization details, refer to https://aka.ms/yamlauthz."
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有办法在不同用途的管道之间共享变量,如果有的话,您能给我发送一些可以帮助我配置这个的文档吗?

azure-devops azure-pipelines-yaml

5
推荐指数
2
解决办法
9270
查看次数