小编Ste*_*mul的帖子

使用无锁编程深层次的高级抽象不受欢迎的原因是什么?

从我在锁定免费编程上收集到的内容来看,这是非常难以做到的......我同意.只是想一些问题会让我头疼.但我想知道的是,为什么没有广泛使用高级包装器(例如无锁队列和类似的东西)?例如,boost没有锁定免费库,但据我所知,有人建议使用.我的意思是我猜有很多应用程序,你不能避免关键部分是负载的重要部分.那么原因是什么?是吗...

  1. 专利 - 我听说一些与无锁编程相关的东西已获得专利.
  2. 性能.
  3. 谷歌和微软都有像这样的内部库,但没有一个是公开的......
  4. 别的什么?

所以我的问题是:为什么使用无锁编程的高级抽象不是很受欢迎,而同时"常规"多线程编程是"在"?

编辑:boost有一个无锁lib :)

queue boost lock-free concurrent-programming

12
推荐指数
1
解决办法
1160
查看次数

在Wix安装程序上设置'AllUsers'选项不起作用

我正在使用WiX在测试机器上安装服务.但是当我这样做时,只有在机器上安装它的用户才能在"添加/删除程序"控制面板选项中看到.但是我想让它对机器上的每个用户都可见.

我做了一些研究,并意识到我AllUSERS在.wxs文件中创建安装程序时没有设置属性.

所以我用这行更新了我的脚本<Property Id="AllUSERS" Value="1"/>并创建了安装程序.但仍然只有安装的用户可以在控制面板中看到它.

这是我创建安装程序的脚本.

<?xml version='1.0' encoding='windows-1252'?>

<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>

<Product Name='Importer Service' Id='PUT-GUID-HERE' UpgradeCode='PUT-GUID-HERE'
Language='1033' Codepage='1252' Version='$(var.version)' Manufacturer='Test'>

<Package Id='*' Keywords='Installer' Description="Imports data"
   Manufacturer='Test' InstallerVersion='100' Languages='1033' Compressed='yes'
   SummaryCodepage='1252' />

 <Media Id='1' Cabinet='ImporterWebService.cab' EmbedCab='yes' 
        DiskPrompt="CD-ROM #1" />
<Property Id='DiskPrompt' Value="Importer Web Service 1.0 Installation [1]" />

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
<Property Id="AllUSERS" Value="1"/>

<Directory Id='TARGETDIR' Name='SourceDir'>

  <Directory Id='ProgramFilesFolder' Name='PFiles'>
    <Directory Id='Test' Name='Test1'>
      <Directory Id='INSTALLDIR' Name='Importer Service'>

        <Component Id='MainExecutable' Guid='*'>
          <File Id='ImporterWindowsServiceEXE' 
                Name='Importer.WindowsService.exe' DiskId='1' 
                Source='Importer.WindowsService.exe' KeyPath='yes'> …
Run Code Online (Sandbox Code Playgroud)

installer windows-installer wix

12
推荐指数
1
解决办法
9237
查看次数

提取msi时出错2203

使用以下命令提取msi时出现2203错误.

msiexec/a"C:\ Test\Installer.msi"/ QB targetDIR ="C:\ Test\Eval"/ LV*"C:\ Test\INST_Logfile.log"

在回答时请考虑以下几点:

  • 登录用户和SYSTEM帐户对
    %TEMP%,C:\ Windows\Installer 具有完全访问权限.

  • msi未标记为ReadOnly.

  • 检查Windows安装程序服务,它运行正常.

  • 尝试取消注册并注册msiexec

           MSIEXEC /UNREGISTER
           MSIEXEC /REGSERVER
    
    Run Code Online (Sandbox Code Playgroud)
  • 重启系统

以下是日志中捕获的错误:

MSI (s) (88:A4) [14:09:27:551]: Executing op: DatabaseCopy(DatabasePath=C:\Test\Installer.msi,,CabinetStreams=cab1.cab,AdminDestFolder=C:\Test\,) MSI (s) (88:A4) [14:09:27:551]: Note: 1: 2203 2: C:\Test\Installer.msi 3: -2147287008 DEBUG: Error 2203: Database: C:\Test\Installer.msi. Cannot open database file. System error -2147287008 MSI (s) (88:A4) [14:09:34:634]: Product: Installer -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error …

installer windows-installer msiexec

12
推荐指数
3
解决办法
3万
查看次数

MSI vs nuget包:哪个更适合持续交付?

我们来讨论以下主题.目前正在部署的应用程序有很好的知道xcopy方法.这种方法很难管理依赖项,文件更新等.有一些软件包的帮助下启动应用程序部署的想法,你知道你在Linux的帮助下RPM,但适用于Windows.

所以我有疑问:在Windows经典Windows安装程序(msi)或nuget或其他东西上使用什么包系统更好?

.net windows-installer wix continuous-deployment nuget

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

如何找到已安装的MSI文件的升级代码?

在某些情况下,可能需要检索已部署软件包的MSI升级代码.

常见场景:

  • 我接管了其他人的MSI项目,我需要确定哪些升级代码用于以前的版本.这是处理升级方案所必需的.我没有任何版本的存档.
  • 我在开发过程中不小心多次更改了我的WiX软件包的升级代码,我需要"在野外"找到所有升级代码版本.我不知道升级代码应该在版本之间保持稳定.

这是一个Q/A风格的问题.

这个问题以各种形式出现过,但这不是重复的.我发布了一种使用主MSI自动化接口(或严格来说WMI)的方法.它应该比先前答案的基于注册表的方法更可靠.这个答案也试图总结其他检索方法.

vbscript powershell wmi windows-installer wix

12
推荐指数
1
解决办法
7972
查看次数

如何更好地利用MSI文件

您可能知道,msiexec是一个命令行应用程序,可用于安装MSI文件.您可能知道,您可以在静默或不可见模式下运行它.

如果安装程序要求用户回答有关要安装的部件的具体问题,是否有一些方法可以在msiexec命令行中添加一系列选项来执行此操作?

我认为必须有某种方法来设置MSI文件的默认设置才能实现这一点.MSI文件是如何制作的?它们是通过微软的工具开发的吗?他们可以打开和编辑吗?

installation installer windows-installer wix msitransform

11
推荐指数
2
解决办法
2万
查看次数

如何确定导致重复Windows Installer自修复的原因?

  • 如何仅记录由Installshield 2008生成的MSI文件的更改,以通过" 自我修复 " 重新安装?
  • 自修的原因是什么?
  • 如何使用Installshield 2008禁用MSI的自我修复?

installer windows-installer installshield wix resiliency

11
推荐指数
1
解决办法
9844
查看次数

程序安装的好处和真正目的是什么?

在我迄今为止编写的所有程序中,如果我希望它在另一个工作站上工作,我只需复制并粘贴使其运行所需的可执行文件和必要文件(例​​如:.o文件,二进制文件......).

但是所有为商业用途而构建的程序总是带有安装程序.例如PC游戏.所以我的问题是:当我们只是将文件复制到目标工作站时,安装的主要好处/原因是什么?

- 其中一个原因可能是防止盗版.但除此之外,我确定还有其他更强的理由吗?

deployment installation installer windows-installer wix

11
推荐指数
1
解决办法
2844
查看次数

如何比较两个(或更多)MSI文件的内容?

如何对两个(或更多)MSI文件进行 " 内容比较 " 并查看文件内部实际不同的内容 - 而不是进行无用的二进制比较?(这显然只告诉我我是否正在处理同一文件的副本).

一些相关和典型的问题场景:

  • 我们构建系统吐出MSI文件像疯了似的,有时我们需要弄清楚不同的MSI文件之间存在什么样的差异(读:事情发生了转变,现在我们是失败的部署).
  • 我们有来自不同位置的同一消息来源编译MSI文件,其中一些无法运行报告System.BadImageFormatException -我们如何调试什么的MSI文件的差异?(具体处理此错误的答案在这里:应用程序是否依赖于编译它的环境?).
  • MSI文件可以使用各种工具进行编译,但对于stackoverflow用户,这些文件可能最常使用WiXVisual Studio Installer Projects(免费工具包)创建.

这是一个Q/A风格的问题,主题是比较已编译的MSI文件以确定存在哪些真正的"内容差异".

windows-installer wix orca advanced-installer msiexec

10
推荐指数
1
解决办法
5179
查看次数

如何创建Windows安装程序

基本上我们以手动安装程序(Windows powershell脚本)的形式发布我们的更改/修复.它将通过读取配置文件值在特定位置安装指定的.dll和SQL脚本文件(我们将在此文件中配置.dll和Sql脚本位置).相同的powershell脚本具有卸载代码以回滚特定的chage集.

是否有任何选项或机制来为上述要求创建Windows安装程序?

powershell windows-installer wix appx msix

10
推荐指数
3
解决办法
8521
查看次数