小编Dav*_*jak的帖子

在某些计算机上,应用程序无法加载sqlite dll文件

我编写了一个使用sqlite的应用程序,它在大多数系统上运行良好.它是用C#编写的,唯一的非框架程序集是sqlite,它包含在System.Data.SQLite.dll中.

我在所有机器上以相同的方式部署它(复制粘贴exe文件,数据库文件和System.Data.SQLite文件).它适用于我所有的PC以及我尝试过的大多数PC.

但后来我得到报告说,对某些人来说,它会抛出以下异常:

无法加载文件或程序集'System.Data.SQLite,Version = 1.0.65.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'或其依赖项之一.尝试加载格式不正确的程序.

现在我已确保dll文件与应用程序exe文件位于同一文件夹中.它是相同的dll,具有与上面的异常消息中所述相同的版本.

我真的对此感到困惑,所以我创建了一个新的虚拟机,在其上安装了Windows 7专业版,并且只是复制粘贴文件,并且事情有效.因此,如果它在一个新窗口上工作,我无法想象其他PC可能会丢失什么...

注意:项目抛出异常的其中两台机器也运行Windows 7 proffesional.

我真的很感激这方面的任何帮助,因为我是新鲜的想法......

c# sqlite deployment system.data.sqlite

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

如何从List <T>获取IEnumerable <T>?

我有一个List,我需要一个IEnumerable,但List.GetEnumerator()返回List.Enumerator ...

是否有一种简单的方法来获取(转换为?)IEnumerator?(目前我用循环解决了这个问题,但是我觉得投射枚举器会是一个更好的解决方案)...

c# generics

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

通过绑定设置文本时,TextBox删除按钮(小x)不可见

我有一个UWP应用程序(C#)TextBox.文本框绑定到属性,有两种方式:

Text="{Binding NameFilterString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Run Code Online (Sandbox Code Playgroud)

当我输入TextBox"删除按钮" - 右角的小x - 出现.单击它可以TextBox按预期清除文本和属性值.

当属性更改时,TextBox'文本已正确更新,但不会显示删除按钮.我可以以某种方式让它可见吗?无论是通过财产还是以某种方式"刷新"它?

c# xaml windows-10 uwp

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

PocketPC Windows CE上的C#扩展方法

CE框架上是否也提供了扩展方法?我有一个字符串的扩展方法,在Windows窗体项目中工作正常,但它不会在PocketPC应用程序中构建.

我认为这很容易找到,但我无法在PocketPC上找到有关扩展方法的任何信息.

编辑:哎呀这是我的错误.我在Visual Studio 2008中编写了扩展方法,但PocketPC项目是在Visual Studio 2005中编译的,我没有意识到.那是我生命中的一小时,我永远不会回来.无论如何,谢谢大家的答案.

c# extension-methods pocketpc compact-framework

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

使用CruiseControl.NET指定目标平台

我在设置我的第一个自动构建服务器的过程中...到目前为止,一切都进展顺利,CruiseControl.NET正确地检查出来自VisualSVN的所有nececery文件并构建解决方案......但是,这就是我的地方遇到问题......

首先设置构建服务器的一个重要原因是因为我需要使用我的项目/安装文件来定位x86和x64.我无法找到这样做的方法.到目前为止这是我的配置文件(相关位):

    <tasks>
        <devenv>
          <solutionfile>ProjectName.sln</solutionfile>
          <configuration>Release</configuration>
          <buildtype>Rebuild</buildtype>
          <project>ProjectName</project>
          <executable>C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com</executable>
          <buildTimeoutSeconds>600</buildTimeoutSeconds>
          <version>VS2010</version>
        </devenv>
    </tasks>
Run Code Online (Sandbox Code Playgroud)

这是正常的,但我希望CruiseControl.NET构建它两次,一次用于目标平台x86,一次用于x64.我怎样才能做到这一点?

我怀疑我需要在配置块中添加一个额外的参数,但似乎没有任何工作,我(奇怪的是)无法找到这个功能的例子...

谢谢你的帮助...

cruisecontrol.net build-automation

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

诺基亚成像SDK是否有硬件限制?

有谁知道诺基亚成像SDK是否限制/限制为诺基亚硬件?换句话说,如果我使用SDK创建Windows Phone 8应用程序,该应用程序将在HTC或Samsung设备上运行吗?

我没有在诺基亚开发者网站上看到任何提及硬件/硬件合作伙伴限制的具体措辞.

windows-phone-8 nokia-imaging-sdk lumia-imaging-sdk

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

这是什么类型的BarCode?

我正在开始编写应用程序的过程,其中一部分是解码条形码,但是我的开始不好.我不是条形码专家,这不是常见的条形码类型,所以我遇到了麻烦.我无法弄清楚这是什么类型的条形码,我必须解码.

我查看了维基百科和其他一些网站,其中包含不同类型条形码的视觉描述(以及如何识别它们),但我无法识别它.请注意,我已经尝试了几个免费条形码解码程序,他们都无法解码.

这是条形码的图片:

替代文字http://www.shrani.si/f/2B/4p/4UCVyP72/barcode.jpg

我希望你们中的一个人能认出来.此外,如果有人之前已经使用过它并且知道可以解码它们的库(从图像中),我很想听听它们.

我非常感谢我能收到的任何其他指示.谢谢.

c# barcode decoding

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

如何在Visual Studio 2008部署项目中获取项目的汇编版本

我在visual studio 2008中有一个部署项目,它安装了几个C#项目.除其他外,我希望它将项目汇编版本写入注册表.

有没有办法自动找出项目汇编版本(用AssemblyInfo.cs编写)并将其写为注册表属性的值?

如果没有,有没有办法比手工更好地做到这一点?重要的是这些值是正确的,因为我们的更新软件使用它们.

谢谢.

编辑:我不确定我的问题是否完全清楚.我不想得到这个数字并将其存储到字符串中.我想用Deployment Projects注册表编辑器将它写入注册表(不确定这是否是官方名称,您可以通过右键单击解决方案资源管理器中的部署项目并导航到View-> Registry来实现它)

c# deployment version

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

从C#调用C++函数 - 不平衡堆栈

我有一个带有以下签名的非托管C++函数:

int function(char* param, int ret)
Run Code Online (Sandbox Code Playgroud)

我试图用C#调用它:

unsafe delegate int MyFunc(char* param, int ret);
Run Code Online (Sandbox Code Playgroud)

...

int Module = LoadLibrary("fullpathToUnamanagedDll");
IntPtr pProc = GetProcAddress(Module, "functionName");
MyFunc func = (MyFunc)System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(pProc, typeof(MyFunc));

unsafe
{
    char* param = null;
    int ret = 0;
    int result = func(param, ret);
}
Run Code Online (Sandbox Code Playgroud)

据我所知,从旧的C++项目规范中,param为null ,ret为0 都是函数的有效输入.当我尝试调用它似乎工作,但退出时我得到以下错误:

检测到PInvokeStackImbalance

对PInvoke函数'... :: Invoke'的调用使堆栈失去平衡.这很可能是因为托管PInvoke签名与非托管目标签名不匹配.检查PInvoke签名的调用约定和参数是否与目标非托管签名匹配.

我已经尝试了几乎任何我能想到的东西(不安全是最后的手段),但是我找不到任何方法来运行该函数而不会得到不平衡的堆栈.还有什么我可以尝试的吗?

c# c++ unsafe unmanaged

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

内存位置的十六进制转储

我使用指针来指定某种"共享内存",我用它来在不同的进程/线程之间交换数据.现在我想对共享缓冲区的内容进行十六进制转储.有谁知道这是怎么做到的吗?

谢谢,R

c++ hex pointers memory-management hexdump

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