Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio dark.exe(来自WiX)是从MSI提取信息的可靠方法吗?_Visual Studio_Wix_Regsvr32 - Fatal编程技术网

Visual studio dark.exe(来自WiX)是从MSI提取信息的可靠方法吗?

Visual studio dark.exe(来自WiX)是从MSI提取信息的可靠方法吗?,visual-studio,wix,regsvr32,Visual Studio,Wix,Regsvr32,。。。如果是,为什么我不能使用SelfRegCost=“0” 所以这可能有点哲学性;) 基本问题是:我必须在安装过程中注册ShellExtension DLL。当使用普通的VS2008部署时,我有一个自定义操作,它在我的dll上运行一个regsvr32。然后在我的WiX设置中,我做了同样的操作,即使卸载时取消注册(/u)。这个很好用 直到前几天,我遇到了一个问题,一些第三方DLL在卸载Visual Studio安装程序后失去了注册。我发现安装覆盖了DLL的默认位置。我发现可以将Register属

。。。如果是,为什么我不能使用
SelfRegCost=“0”

所以这可能有点哲学性;)

基本问题是:我必须在安装过程中注册ShellExtension DLL。当使用普通的VS2008部署时,我有一个自定义操作,它在我的dll上运行一个regsvr32。然后在我的WiX设置中,我做了同样的操作,即使卸载时取消注册(/u)。这个很好用

直到前几天,我遇到了一个问题,一些第三方DLL在卸载Visual Studio安装程序后失去了注册。我发现安装覆盖了DLL的默认位置。我发现可以将
Register
属性从
vsdrfCOMSelfReg
更改为
vsdrfDoNotRegister
,现在我的设置不再覆盖默认位置

这使我想到我可以使用相同的属性来注册我的ShellExtension DLL。因此,让我们在VS设置中使用dark,看看
vsdrfCOMSelfReg
的翻译是什么。我发现唯一的区别是
文件
标记中的属性
SelfRegCost=“0”

但是根据本文()使用SelfRegCost是baaad,很多事情都出错了。可能吧

现在我的理由是:要么

a) dark.exe不是从MSI或MSI中提取信息的可靠方法


b)
SelfRegCost=“0”
的使用并不像每个人假装的那样糟糕,因为Visual Studio一直在使用它?

Visual Studio正在公开功能;这并不意味着使用它是个好主意。自注册是不好的,应该通过使用WiX元素(如Class和ProgId)显式编写COM注册来避免;这并不意味着使用它是个好主意。自注册是不好的,应该通过使用WiX元素(如Class和ProgId)显式编写COM注册来避免。

Dark旨在反编译回源代码,但不打算通过编译器进行往返。它是一个有用的起点,可以清理代码并进行任何必要的重构,然后构建备份。

Dark旨在反编译回源代码,但不打算通过编译器进行往返。这意味着它是清理代码、进行任何必要的重构然后重新构建代码的有用起点