小编Ste*_*dit的帖子

SignTool错误:ISignedCode :: Sign返回错误:0x80092006

我正在签署一个EXE程序,其中包含由可信CA颁发的证书.我正在使用Windows SDK v6.0a中的signtool.exe.

证书位于计算机商店中,位于"Personals"文件夹中.

我的命令行是:

sign /sm /n "My company" /d MyProductName /du http://my.url.com "C:\Setup\setup.exe"
Run Code Online (Sandbox Code Playgroud)

当我在命令行上运行此命令时,它工作正常.当我在批处理过程中运行此命令(由webservice调用,因此在执行命令时没有用户登录)时,会发生以下错误:

错误数:1 SignTool错误:ISignedCode :: Sign返回错误:0x80092006没有为商店或对象指定提供程序.

有人可以帮忙吗?

code-signing

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

带扩展名的String.Format电话号码

我正在尝试创建一个格式化美国电话号码的功能 - 希望不会遍历每个数字.

全部通过10位数就可以了.但是,当传递超过10位数字时,我希望String.Format方法在右侧附加扩展数字.例如:

当结果中传入的14位数字应该是:(444)555-2222 x8888当结果中传递的12位数应该是:(444)555-2222 x88等.但是我当前尝试得到的是:传入12位数字返回此字符串'() - 949 x555444433'

这是我到目前为止所拥有的.

public static string _FormatPhone(object phonevalue)
{
    Int64 phoneDigits;

    if (Int64.TryParse(phonevalue.ToString(), out phoneDigits))
    {
        string cleanPhoneDigits = phoneDigits.ToString();
        int digitCount = cleanPhoneDigits.Length;

        if (digitCount == 10)
            return String.Format("{0:(###) ###-####}", phoneDigits);
        else if (digitCount > 10)
            return String.Format("{0:(###) ###-#### x#########}", phoneDigits);
        else
            return cleanPhoneDigits;
    }

    return "Format Err#";
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c# string

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

并行文件是否比顺序读取更快?

我只是想知道并行File.Read使用PLINQ/Parallel可以更快吗?我的代码如下(.Net 4.0):

public static void ReadFileParallel(List<string> fileName)
{
   Parallel.Foreach(fileName, file=>File.Read(file));
}

public static void ReadFilePLINQ(List<string> fileName)
{
    fileName.AsParallel().foreach(file=>File.Read(file));
}
Run Code Online (Sandbox Code Playgroud)

我问这个的原因是因为我认为文件读取是IO绑定的,所以做并行不会有帮助,我是对的吗?

c# file-io

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

为什么在App.config中添加**appSettings**部分会导致WPF应用程序出错?

在我的WPF应用程序(复合应用程序)中,我想在App.config文件中存储一个变量,但是只要在App.config中添加appSettings部分,它就会给我这个错误:

System.Windows.Application的类型初始值设定项引发了异常.

App.Config中:

<?xml version="1.0" encoding="utf-8" ?>
  <configuration>
      <appSettings>
          <add key="SmartFormMockDirectory" value="C:\test"/>
      </appSettings>
    <configSections>
    </configSections>
    <system.serviceModel>
      <bindings>
        <basicHttpBinding>
          <binding name="Service1Soap" closeTimeout="00:01:00" openTimeout="00:01:00"
            receiveTime...
Run Code Online (Sandbox Code Playgroud)

总的来说,我知道这是有效的,因为我可以在这样的简单应用程序中使用它.

什么可能导致上述错误,我将如何解决它,以便我可以简单地将变量添加到App.config文件?

.net wpf app-config prism

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

由互斥锁阻止的等待线程的执行顺序

我有一个互斥锁,可以控制从多个线程访问单个对象.线程完成后,互斥锁将被解锁,以允许订单线程对该对象进行操作.在Windows上使用WaitForSingleObject函数是否有一个命令线程被发信号?我希望现在允许第一个尝试锁定互斥锁的线程锁定互斥锁.这将是一个FIFO队列,因此发送到被阻塞线程的信号不是随机的.我是否必须实现自己的排队机制来实现这一目标?如果是这样,哪些功能有用?

windows multithreading mutex

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

.NET中"等于"的内部结构

我有一个愚蠢的怀疑.一般来说,"System.Object"实现了"Equals".当我实现IEquatable接口时,我可以给我的"Equals"提供自定义定义(我相信如此).

所以教授类的实现等于

class Professor:System.Object,IEquatable
Run Code Online (Sandbox Code Playgroud)

因为System.Equals和IEquatable的Equals有不同的定义,为什么C#报告错误?.因为我没有覆盖"Equals",甚至没有使用new关键字隐藏"Equals".

class Professor : IEquatable<Professor>
{

   public string Name { get; set; }

   public bool Equals(Professor cust)
   {
       if (cust == null) return false;
       return cust.Name == this.Name;
   }

}
Run Code Online (Sandbox Code Playgroud)

c# oop interface

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

C++多态 - 自动检测派生类型

我有一些我想要优化的代码.它看起来像这样:

function abc( string format ) {
  if (format == "a") { // this is a string, I shouldn't have used single quote, sorry for the confusion
    classx::a t;
    doit(t);
  }
  if (format == "b"){
    classx::b t;
    doit(t);
  }
  if (format == "c"){
    classx::c t;
    doit(t) 
  }
  if (format == "d"){
    classx::d t; 
    doit(t);
  }
}
Run Code Online (Sandbox Code Playgroud)

目前有许多不同类型的doit()函数

function doit( classx:a ) {
   different code for a
}

function doit( classx:b ) {
   different code for b
}
Run Code Online (Sandbox Code Playgroud)

...等等

如您所见,复制了大量代码.但是我无法弄清楚如何减少这些词.请注意:doit(x)已按不同类型重载.a,b,c,d类派生自名为"X"的类.

我可以创建一个指针类型classx …

c++ oop polymorphism

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

C结构到C#的编组

请耐心等待,因为我是新来的编组人员.我有一个C结构和函数声明如下:

typedef struct 
{
    char* name;
    BT_ADDR address;
} DeviceList;

extern "C" _declspec(dllexport)DeviceList* PerformQuery();
Run Code Online (Sandbox Code Playgroud)

BT_ADDR结构与Win CE SDK中wsbth2.h中定义的结构相同.PerformQuery返回指向DeviceList数组的指针.

在我的C#程序中,我执行以下pinvoke声明,如下所示

[StructLayout(LayoutKind.Sequential)]
struct DeviceList
{
    public string name;
    public ulong address;
}

[DllImport("BT_Conn.dll")]
public extern static DeviceList[] PerformQuery();
Run Code Online (Sandbox Code Playgroud)

运行C#程序后,返回NotSupportedException.你能告诉我我的编组有什么问题吗?

c c# pinvoke marshalling

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

C# - 多维int数组

你如何在C#中声明一个"深层"数组?

我想有一个int数组,如:[1,4,5,6,[3,5,5,7,9],1,4,234,2,1,2,4,6,67,[ 1,2,4,44,56,7]]

我以前做过这个,但记不起正确的语法.但它类似于下面所写的内容:Int32 [] MyDeepArray = new Int32 [] = {3,2,1,5,{1,3,4,5},1,4,5};

我如何正确迭代它.如何检查数组是否为数组?

谢谢!

c# multidimensional-array

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

C#App的应用程序设置

我有一个应用程序,其中包含用户在运行应用程序之前可以选择的设置.设置存储在数据库中.整个应用程序使用这些设置.现在,每个使用该设置的类都会在其构造函数中调用数据库,以将设置加载到类中.这对我来说似乎很奇怪,因为设置不应该在运行应用程序的过程中发生变化.那么,你如何调用你的应用程序设置?你是使用静态类还是单例模式而不是每次都调用数据库来调用相同的设置?

c# oop

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