小编Kev*_*ler的帖子

可以在InstallValidate之前安排RemoveExistingProducts自定义操作吗?

问题

我有一个MSI,在安装过程中创建并启动Windows服务,并在卸载过程中停止并删除该服务.这单独安装和卸载时工作正常,但在升级时,将显示"正在使用文件"对话框(仅在Vista及更高版本,因为新的重新启动管理器),表明该服务正在使用中.

背景

InstallValidate自定义操作在InstallExecute序列期间显示"正在使用文件"对话框,该操作紧接在RemoveExistingProducts自定义操作之前安排; 这意味着尚未卸载以前的版本,因此显示"正在使用文件"对话框.

MSDN文档指出必须在InstallValidate操作之后安排RemoveExistingProducts操作,并且我当前在InstallValidate操作之后立即安排RemoveExistingProducts操作.

潜在解决方案

我想在InstallValidate自定义操作之前立即重新安排RemoveExistingProducts自定义操作,以便先前的安装有机会在显示"正在使用文件"对话框之前停止并删除该服务.我尝试重新安排操作,它似乎正常工作,没有任何不利的副作用(虽然日志仍然表明InstallValidate操作在RemoveExistingProducts操作之前执行),但我犹豫是否使用此解决方案,因为它违反了MSDN文档,我可能还没有看到可能产生的不利影响.

有没人试过这个?我能想到的唯一其他选择是让新安装停止旧安装的服务,但这是不可取的,因为它要求安装有关于它可以升级的所有旧安装的信息(停止此特定服务可能涉及更多而不只是简单地调用服务管理器来阻止它).

windows-installer custom-action

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

可以复制某个控件的所有属性吗?(C#窗口形式)

例如,我有一个DataGridView带有Blue BackgroundColor属性等的控件..有没有一种方法可以将这些属性以编程方式传递或传递给另一个DataGridView控件?

像这样的东西:

dtGrid2.Property = dtGrid1.Property; // but of course, this code is not working
Run Code Online (Sandbox Code Playgroud)

谢谢...

c# winforms

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

如何让Windows窗体设计器使用外部程序集中的资源?

我在我的Windows窗体项目中的控件上使用的资源文件中有一些资源(在这种情况下是图像).Visual Studio资源选择对话框不能很好地支持从资源文件中选择图像,除非它们位于特定位置,但您可以直接编辑设计器文件,这样就可以了.应用程序编译并正确运行,Windows窗体设计器足够智能,不会搞砸我手工编辑的代码.

// in an assembly named ResourceConsumer
this.button1.Image = global::ResourceConsumer.Properties.Resources.Close32x32;
Run Code Online (Sandbox Code Playgroud)

现在我想将这些资源移动到外部程序集,以便多个应用程序可以使用它们.我可以设置一个程序集来公开它的资源而没有问题(只要我使用的是Visual Studio 2008或更高版本),这样就可以了.当我更改设计器代码以从其新位置引用图像时,代码会编译并正确运行,但现在Windows窗体设计器会在生成代码时更改我的代码; 它将图像的二进制文件嵌入本地资源文件中并从那里引用它.

// ResourceProducer is an external assembly containing resources
this.button1.Image = global::ResourceProducer.Properties.Resources.Exit32x32;
Run Code Online (Sandbox Code Playgroud)

由Windows窗体设计器更改为:

this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
Run Code Online (Sandbox Code Playgroud)

Windows窗体设计器似乎理解从同一个程序集中提取资源,而不是从外部提取资源.有没有办法让Windows窗体设计器允许我使用外部程序集中的资源?

resources windows-forms-designer visual-studio winforms

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

及时修复夜间建筑有多重要?

我们有一个自动构建服务器,每晚构建我们的代码,这对我们很有用,因为我们团队中的每个人都不能构建整个源代码树.最近,团队中的一些成员对于及时修复构建错误变得越来越松懈; 有时几周没有成功的建设.我甚至无意中听到一位开发人员说,"构建已经破坏,现在是添加[一些突破性变化]的好时机." 由于我处理最下游的代码,我通常使用与源代码库非常不同步的树的部分,这使得在提交之前测试更改变得非常困难.

我觉得我们失去了每晚建造的大部分好处,因为它不断被打破.我是不是在这里离开基地,还是应该更好地修复构建?

continuous-integration nightly-build

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

如何查找表的当前大小(内存中)?

我有一个使用engine = MEMORY指定的内存表.我可以运行什么命令来了解它目前占用多少空间?最大尺寸怎么样?

mysql

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

正则表达式问题(C#)

HTML:

<TD style="DISPLAY: none">999999999</TD>
<TD class=CLS1 >Name</TD>
<TD class=BLACA>271229</TD>
<TD>220</TD>
<TD>343,23</TD>
<TD>23,0</TD>
<TD>222,00</TD>
<TD>33222,8</TD>
<TD class=blacl>0</TD>
<TD class=black>0</TD>
<TD>3433</TD>
<TD>40</TD>
Run Code Online (Sandbox Code Playgroud)

我需要价值.如何在C#中做到这一点?我想要一个字符串数组;

999999999
Name
271229
220
Run Code Online (Sandbox Code Playgroud)

html c# regex

0
推荐指数
1
解决办法
72
查看次数