在ClickOnce的发布选项中没有在桌面创建快捷方式的选项,而许多客户习惯于使用桌面快捷方式。
大家都知道ClickOnce程序的实际路径是不固定的,每当程序更新到新版本的时候,启动位置都会改变,这样传统的快捷方式创建方式就不好用了。

通过研究那个开始菜单中的快捷方式,我发现其实他就是一个文件,后缀是.appref-ms,而且里面的内容是文本格式,例如:
http://zjj/WindowsApplication26/Win26.application#Win26.application, Culture=neutral, PublicKeyToken=6e8580a27fa3dbc7, processorArchitecture=msil
可以看到,这里面没有存储实际的可执行文件的地址,是一个通用地址,即时有新版本发布,也一样好用。

有了这个发现,创建桌面快捷方式就很简单了:在桌面上创建一个后缀为.appref-ms的文本文件即可。
文本内容:
1、在自己的开发机器上发布一下
2、打开开始菜单,找到那个快捷方式文件,用记事本打开

需要注意的是:文本的编码格式是Unicode
posted @ 2008-05-12 12:46 队长 阅读(220) | 评论 (4)编辑
通过设置IIS的Gzip压缩可以极大地减小网络上传输的数据流量

设置过程如下:
1、打开Internet信息管理器,右击”网站“(一定要注意是【网站】文件夹,不是那个【默认网站】),点”属性“菜单-选”服务“选项卡,选上“压缩应用程序文件”复选框,那个“压缩静态文件”好像可以不选
2、打开Web服务扩展,在其中增加Gzip压缩扩展并启用
3、设置IIS可进行压缩的文件类型,这一步骤比较繁杂,有一高人写了一个批处理文件,用来简化此操作,批处理内容如下:
IISreset.exe /stop 
 
cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoDynamicCompression true
cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoStaticCompression true 
cscript.exe adsutil.vbs set W3Svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "txt" "ppt" "xls" "xml" "pdf" "xslt" "doc" "xsl" "htc" "js" "css" 
cscript.exe adsutil.vbs set W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "txt" "ppt" "xls" "xml" "pdf" "xslt" "doc" "xsl" "htc" "js" "css" 
cscript.exe adsutil.vbs set W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions "asp" "dll" "exe" "aspx" "asmx" "ashx" 
cscript.exe adsutil.vbs set W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions "asp" "dll" "exe" "aspx" "asmx" 
cscript.exe adsutil.vbs set W3Svc/Filters/Compression/GZIP/HcDynamicCompressionLevel "9"
cscript.exe adsutil.vbs set W3Svc/Filters/Compression/DEFLATE/HcDynamicCompressionLevel "9" 
 
IISreset.exe /restart


把该批处理文件拷贝到c:\inetpub\AdminScripts下执行即可

如果你设置完成了,可以访问下面的地址测试效果:
http://www.port80software.com/tools/compresscheck.asp

这个工具的使用建立在你的网站在Internet上可访问的基础上。如果哪位高人有可以本地使用的工具,告诉我一下,不胜感激!

参考文档:
http://angryhacker.com/blog/archive/2007/09/08/iis-compression-and-.net-web-services.aspx
http://www1.lob.cn/n2087c8.shtml
http://www.cnblogs.com/Elong/archive/2006/12/14/592394.html


posted @ 2008-04-23 16:05 队长 阅读(118) | 评论 (0)编辑

Men are all alike in their promises.

It is only in their deeds that they differ.

posted @ 2008-02-02 12:49 队长 阅读(32) | 评论 (0)编辑
     摘要: 说明,这个汉化包来自http://d.download.csdn.net/source/296105,所有的感谢都给他。
我把他的汉化包DLL用Reflector反编译了一下,用7.3.5重新编译了一遍。
共享给大家,原作者没有发布源代码,我也就不发了,其实反编译很容易的。

附使用方法(同样源自allisnew).........  阅读全文
posted @ 2008-01-08 10:56 队长 阅读(1130) | 评论 (3)编辑

FileStream fss = File.OpenRead(@"d:\a.dll");

FileStream fsd = File.OpenWrite(@"d:\b.dll");

int bytesRead = 0;

while ((bytesRead = fss.Read(buffer, 0 , bufferSize)) > 0)

{

    fsd.Write(buffer, 0, bytesRead);

}

fss.Close();

fsd.Close();

 

 

Stream si = File.OpenRead(@"d:\a.dll");

Stream so = File.OpenWrite(@"d:\b.dll");

BufferedStream bsi = new BufferedStream(si);

BufferedStream bso = new BufferedStream(so);

while ((bytesRead = bsi.Read(buffer, 0 , bufferSize)) > 0)

{

    bso.Write(buffer, 0, bytesRead);

}

bio.Flush();

bsi.Close();

bso.Close();

 

TextReader两个子类:StreamReader和StringReader

 

  • x.Read为从x中读取
  • y.Write为往y中写入
  • 被写入的流可以调用Flush方法
  • 流通常都没有Open方法,也不需要Open
  • 流都有Close方法,且必须调用
  • 使用缓冲流(BufferedStream)会提高效率,因为你自定义的buffer大小不一定是正合适的
  • 流可以叠加、嵌套,可以认为有内在流和外部流之分,当调用外部流的Close方法时,它会自动调用内在流的Close方法
  • 流本身可以认为就是字节流,为了使用方便,我们通常会用...Reader和...Writer
  • 构造...Reader的方法通常有两种:1 File.OpenText类,2 StreamReader sr = new StreamReader(源流)
posted @ 2007-12-09 14:02 队长 阅读(36) | 评论 (0)编辑
  1. 买商品房太贵,买经济适用房没资格。——都市工薪族
  2. 有大理想的人,总是要牺牲小的乐趣。
  3. 物价连连上涨,还说老百姓承担得起。不知说谎的人会不会脸红,他们是长期白吃白喝,还是不食人间烟火?
  4. 人永远不用和猪摔跤,双方搞得一身泥,正是猪喜欢的结果。
  5. 大学应该是社会的理想模型,而不应该是社会的缩影。
  6. 不准对我耍酷、不准让我吃醋、吵架你要让步、揍你你要挺住。——野蛮女友
  7. 虽然我家里穷,但是,我在道德上并不处于劣势。慈善资助不是助学贷款,也不是交易。
  8. 男:我赚钱就是为了喝酒;女:我喝酒就是为了赚钱。
  9. 你可以侮辱我的人格,绝不可以侮辱我的智商。
posted @ 2007-11-10 09:27 队长 阅读(90) | 评论 (0)编辑

用了DevExpress的GridControl,在数据绑定的时候,出现过几次莫名奇妙的问题,数据已经在DataTable中存在了,但是GridControl中的显示好像是不稳定的状态,Grid最下方的新行的Indicator显示比较奇怪,是一个小星星。再做其他操作的时候,这行还会消失。

最终执行了bindingSource.ResetBindings(false)解决了。

在这打个记号,备忘!

posted @ 2007-09-20 12:58 队长 阅读(69) | 评论 (0)编辑

测试

Balloon

真的那么好用吗?

果然好用诶!

posted @ 2007-09-18 16:30 队长 阅读(111) | 评论 (1)编辑

在我开发的WinForm+WebService程序中,偶尔会出现WebService无法调试的状况,莫名其妙地就会跟踪到这样的代码段:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.ComponentModel.BrowsableAttribute(true)]
[System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Visible)]
public override System.Data.SchemaSerializationMode SchemaSerializationMode {
 get {
  return this._schemaSerializationMode;
 }
 set {
  this._schemaSerializationMode = value;
 }
}

解决方法是对IDE进行设置:【工具】-【选项】-【调试】-【常规】,去掉[启用“仅我的代码”(仅限托管)]设置项前面的复选框。

也有人说删除对WebService的引用,然后重新添加就好了。

参考:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=244866&SiteID=1
https://blogs.msdn.com/jmstall/archive/2004/12/31/344832.aspx

posted @ 2007-09-17 15:43 队长 阅读(192) | 评论 (0)编辑

有时我们需要一次性执行多条sql语句,而用来更新的sql是根据实际情况用代码拼出来的

解决方案是把sql拼成下面这种形式:

begin
update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20837' and train_id = '0233086';
update TB_VG set seq = 2, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20992' and train_id = '0233110';
end;

总结如下:
以begin开始,以end;结尾(end后的分号不能省),中间的每个sql语句要以分号;结尾

在实际编码中,发现即使这样也会有错误发生,把sql语句中的换行符替换成空格就可以了
比较稳妥的编码方式是:
1、以正常的方式编写sql,根据阅读与编写的需要,中间肯定会有换行符
2、在执行之前进行替换:strSql = strSql.Replace("r\n", " ").Replace('\n', ' ');

如果不采用这种方式,可能的异常有:

ORA-00933: SQL 命令未正确结束(如果sql没有以分号结尾)
ORA-00911: 无效字符(如果未加begin 和 end)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:......(如果end后面没有;分号)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出现符号 ""在需要下列之一时:......(语句之间有换行符)

posted @ 2007-05-31 09:41 队长 阅读(1207) | 评论 (5)编辑