我正在为一个专有的Windows CE 4.2设备编写一个C#应用程序(我没有这些规格或其他任何信息.我可以访问文件系统,基本上就是它.)我也是无法获得原始制造商的支持.
现在,我可以很好地安装.NET Compact框架,一切都可以运行一段时间.但每隔一段时间,当设备重置时,它会删除框架,GAC以及与之相关的所有内容.
我知道这不仅仅是硬重置跳回工厂默认值,因为:
我知道没有太多可以继续下去,但也许一些Windows CE大师将能够告诉我为什么会发生这种情况,并且如果有一些理智的方法可以避免它.我对Windows CE知之甚少,所以我知道,它可能是完全标准的行为.
就此而言,有关如何进一步解决这个问题的建议吗?目前,我能看到的最佳解决方案是在每次启动时重新安装所有内容,但这看起来有点笨拙.
编辑: 重置后,在文件系统的根目录中找到GACLOG.TXT
CGACUTIL:初始化2008年8月12日
20:43:57.000 CGACUTIL:已初始化
12/08/2008 20:43:57.000 CGACUTIL:
删除Microsoft .NET CF 3.5.GAC
12/08/2008 20:43:57.000 CGACUTIL:完成
12/08/2008 20:43:57.000 CGACUTIL:
退出2008年8月12日20:43:57.000
所以,是的,它肯定会删除GAC.为什么,以及如何阻止它?
我想获得我的应用程序的路径,如:"\\ ProgramFiles \\ myApp",我尝试使用以下代码:
string path = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
Run Code Online (Sandbox Code Playgroud)
但它返回一个末尾有"\\ myapp.exe"的路径.
我也尝试过:
string path = System.IO.Directory.GetCurrentDirectory();
Run Code Online (Sandbox Code Playgroud)
但它会抛出"NotSupportedException".
有没有办法在没有.exe的情况下获得一条路径?
我想在移动设备上使用与完整.NET Framework中已知的BackgroundWorker类似的东西.可悲的是,它在紧凑的框架中不可用.
我可以用什么呢?
在Compact Framework中删除文件的readonly属性的首选方法是什么,因为我们没有File :: SetAttributes?
我们的要求是能够将我们的DLL与ClickOnce集成.Dotfuscator很好地完成了混淆工作,但是无法在客户端使用ClickOnce部署混淆的DLL.在我们这边,我们可以完美地处理它.此外,混淆的程序集有时会崩溃我们的.NET CF应用程序.事实证明,这是一个创建临时源并在使用VS编译之前对其进行模糊处理的解决方案.这可确保已编译的程序集可与ClickOnce集成,并与.NET CF完全兼容.混淆C#SOURCE CODE(不是程序集)的最佳工具是什么?
我有一个SQL Compact Edition数据库,我定期更新(通过Web服务).
我写入数据库的部分太长了.我目前正在使用Linq to Datasets(如本问题所示).我听说如果我使用SQLCeResultSet这样做会更快.
所以,鉴于我有一个这样的表:
tblClient
+- CLIENT_ID {Unique identifier} (Primary Key)
+- CLIENT_NAME {varchar (100)}
+- CLIENT_ACTIVE {bit}
我从我的Web服务获得的对象看起来像这样:
class Client
{
public Guid ClientID { get; set; }
public String ClientName { get; set; }
public bool Active { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如何将100个Client对象导入数据库?
更新现有行并插入数据库中尚未存在的行(由主键确定)?
任何示例代码都会很棒.我有SqlCeConnection,但没有别的.
谢谢你的帮助!
c# compact-framework windows-mobile linq-to-dataset sql-server-ce
好吧,我尝试过最后几个小时而且我放弃了:我为移动设备开发(在Unitech HT660上赢得CE)并且发生了一件奇怪的事情:我尝试在我的PC上与服务进行通信而我正在使用TCPClient为了它.
除了一个大问题之外,这很好用:一旦我拔掉USB-Cable,我就用来在程序启动时从VS复制文件TCPClient抛出一个SocketException,因为目标机器主动拒绝它,所以不能建立套接字连接(不是这样,防火墙已关闭,未安装第三方且服务正在侦听)
并且它变得更奇怪:如果电缆插入并且我在程序连接后将其移除,一切工作都很好,我可以在没有电缆的情况下发送和接收数据,我可以在没有电缆的情况下连接.
顺便说一句:与MySQL .NET Connector的MySQLConnection相同.它适用于电缆,但如果在没有建立连接的情况下将其移除,则无法建立连接.
对此有什么想法吗?
提前致谢!
PS:有一件事我忘了提到:我使用无线连接到我的网络,IE以及使用服务和mysql数据库ping计算机就可以了.
正如我之前的问题:如何在屏幕关闭之前保持与数据库的连接?
首先,让我向所有人道歉,我不解释我的情况.
好吧,我的情况是更新到100条记录.我创建了一个真实的工作For loop并记录他们的结果.
private void button1_Click(object sender, EventArgs e)
{
int i;
KeyEventArgs keyEvent = new KeyEventArgs(Keys.Enter); //Create keydown event
Performance perf = new Performance(); //Class for measure time and logging
perf.Start(); //Start stopwatch
for (i = 1; i <= 100; i++)
{
txtLotNo.Text = i.ToString("0000000000") + "$01"; //Generate input ID
txtLotNo_KeyDown(sender, keyEvent); //Fire keydown event
}
perf.Stop(); //Stop stopwatch
perf.Log(frmInvCtrl.appPath,"Stock In (Stay connected)- " + frmInvCtrl.instance); //Logging
}
Run Code Online (Sandbox Code Playgroud)
这是一个Performance Class.
class Performance
{
private Stopwatch …Run Code Online (Sandbox Code Playgroud) c# sql-server compact-framework windows-ce visual-studio-2008
任何人都可以指向可用于Compact .Net Framework 1.0打印的库吗?
标准:
编辑
更多信息:
谢谢,
基肖尔
我有一个正在开发的程序集,用于创建围绕某些潜在敏感功能的外观,我希望允许第三方调用其中包含的某些方法,而不是其他方法.
如果他们可以访问整个DLL,我怎么能阻止第三方调用未经授权的方法(我不关心他们看到代码,只是执行它)?
这必须与.net紧凑框架兼容,所以不幸的是使用StrongNameIdentityPermission属性是不可能的.