如何将使用WiX安装构建的安装集(MSI)进行主要升级到与原始安装相同的文件夹中?
安装被正确检测为升级,但仍显示目录选择屏幕并使用默认值(不一定是当前安装文件夹).
我是否必须进行手动操作,例如在首次安装时将安装文件夹保存在注册表项中,然后在升级时读取此密钥?如果是这样,有什么例子吗?
或者在MSI或WiX中有更简单的方法来实现这一目标吗?
作为参考,我目前的WiX文件如下:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
<Product Id="a2298d1d-ba60-4c4d-92e3-a77413f54a53"
Name="MyCompany Integration Framework 1.0.0"
Language="1033"
Version="1.0.0"
Manufacturer="MyCompany"
UpgradeCode="9071eacc-9b5a-48e3-bb90-8064d2b2c45d">
<!-- Package information -->
<Package Keywords="Installer"
Id="e85e6190-1cd4-49f5-8924-9da5fcb8aee8"
Description="Installs MyCompany Integration Framework 1.0.0"
Comments="Installs MyCompany Integration Framework 1.0.0"
InstallerVersion="100"
Compressed="yes" />
<Upgrade Id='9071eacc-9b5a-48e3-bb90-8064d2b2c45d'>
<UpgradeVersion Property="PATCHFOUND"
OnlyDetect="no"
Minimum="0.0.1"
IncludeMinimum="yes"
Maximum="1.0.0"
IncludeMaximum="yes"/>
</Upgrade>
<!-- Useless but necessary... -->
<Media Id="1" Cabinet="MyCompany.cab" EmbedCab="yes" />
<!-- Precondition: .NET 2 must be installed -->
<Condition Message='This setup requires the .NET Framework 2 …Run Code Online (Sandbox Code Playgroud) 我需要一些软件来探索和修改一些SQLite数据库.是否存在与SQL Server Management Studio或MySQLAdmin类似的内容?
我知道如何使用IS关键字测试对象以查看它是否属于类型
if (foo is bar)
{
//do something here
}
Run Code Online (Sandbox Code Playgroud)
但是你如何测试它不是"bar"?我似乎无法找到一个与IS一起使用的关键字来测试否定结果.
顺便说一句 - 我有一种可怕的感觉,这太明显了,所以提前道歉......
是什么区别const,并readonly和你使用一个比其他?
如果您要编写一个本地运行并调用Web服务的GUI应用程序,要跨平台,您可以使用.Net来做,您会推荐哪些工具?
我正在考虑Java因为它的C#相似性而相对容易上手,然后我可以使用JVM.
我正在使用rails上的灯具,我希望其中一个灯具字段为空白.
例:
two:
name: test
path: - I want this blank but not to act as a group heading.
test: 4
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如果path:没有它作为一个团体头衔,如何留空.有谁知道怎么做?
如何standby在应用程序运行时停止主机进入模式?
有没有win32 api要求这样做的电话?
EditPad Lite有一个很好的功能(CTRL- E,CTRL- I),它会在您的代码中插入时间戳,例如"2008-09-11 10:34:53".
在Vim中获得此功能的最佳方法是什么?
(我在Linux服务器上通过SSH使用Vim 6.1.在目前的情况下,我们中的许多人共享登录,所以如果有另一种内置方式来获取时间戳,我不想在主目录中创建缩写. )
编辑:已解决,桌面上有一个带循环的触发器(请在下面进一步阅读我自己的答案).
我们有一个简单的删除语句,如下所示:
DELETE FROM tablename WHERE pk = 12345
Run Code Online (Sandbox Code Playgroud)
这只是挂起,没有超时,没有任何东西.
我们已经查看了执行计划,它包含许多相关表的查找,以确保没有外键可以删除,但我们已经验证其他表中没有任何行引用该特定行.
目前没有其他用户连接到数据库.
我们对它运行DBCC CHECKDB,并报告0错误.
综观结果sp_who,并sp_lock同时查询是挂,我发现我的spid有大量的PAG和KEY锁,以及偶尔的TAB锁.
该表有1.777.621行,是的,pk是主键,因此它是基于索引的单行删除.执行计划中没有表扫描,但是我注意到它包含了表Spool(Eager Spool)的内容,但是表示估计的行数1.这实际上是伪装的表扫描吗?它只是说它看着主键列.
在表上尝试了DBCC DBREINDEX和UPDATE STATISTICS.两者都在合理的时间内完成
不幸的是,这个特定的表上有很多索引.它是我们系统中的核心表,包含大量列和引用,包括传出和传入.确切的数字是48个索引+主键聚集索引.
我们还应该注意什么?
另请注意,此表之前没有此问题,今天突然出现此问题.我们还有许多具有相同表设置的数据库(客户数据库的副本),并且它们的行为与预期一致,只是这个有问题.