Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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
C# 正在生成安装项目,错误1001(自定义操作出错)_C#_Windows Installer - Fatal编程技术网

C# 正在生成安装项目,错误1001(自定义操作出错)

C# 正在生成安装项目,错误1001(自定义操作出错),c#,windows-installer,C#,Windows Installer,我被这弄糊涂了。这不是我第一次建立一个设置-从来没有见过这样的事情 基本上,只要添加自定义操作并尝试安装,就会出现此错误 我确实有一个安装程序类,包含所有必需的代码字段,它与我在以前的安装程序类中使用的字段相同 [RunInstaller(true)] public partial class Installer : System.Configuration.Install.Installer { public Installer() { Initiali

我被这弄糊涂了。这不是我第一次建立一个设置-从来没有见过这样的事情

基本上,只要添加自定义操作并尝试安装,就会出现此错误

我确实有一个安装程序类,包含所有必需的代码字段,它与我在以前的安装程序类中使用的字段相同

[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{


    public Installer()
    {
        InitializeComponent();
    }

    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);
        // Do some work on commit 
    }
...
来自Fuselogvw:

*** Assembly Binder Log Entry  (19/08/2012 @ 11:57:09) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Windows\syswow64\MsiExec.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = NT AUTHORITY\SYSTEM
LOG: Where-ref bind. Location = C:\Program Files (x86)\OrScanTechnologies\CamerasCalibrationApp\CamCalibApplication.exe
LOG: Appbase = file:///C:/Windows/syswow64/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MsiExec.exe
Calling assembly : (Unknown).
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: No application configuration file found.
LOG: Using host configuration file: C:\Users\-\AppData\Local\Temp\CFGB105.tmp
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/OrScan Technologies/CamerasCalibrationApp/CamCalibApplication.exe.
LOG: Assembly download was successful. Attempting setup of file: C:\Program Files (x86)\OrScan Technologies\CamerasCalibrationApp\CamCalibApplication.exe
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: CamCalibApplication, Version=1.5.2.2, Culture=neutral, PublicKeyToken=null
LOG: Re-apply policy for where-ref bind.
LOG: Where-ref bind Codebase does not match what is found in default context. Keep the result in LoadFrom context.
LOG: Binding succeeds. Returns assembly from C:\Program Files (x86)\OrScan Technologies\CamerasCalibrationApp\CamCalibApplication.exe.
LOG: Assembly is loaded in LoadFrom load context.
来自大众的更多信息

有时,这种错误是由项目平台目标配置不匹配引起的。检查所有解决方案项目是任意CPU/X64/x86(无论你喜欢它们)。< /P> < P>对Windows安装程序XML(WIX)部署工具基金会(DTF)自定义操作进行谷歌搜索。这是托管代码自定义操作的黄金标准,将消除1001条错误消息


这就是说,一定不要重新发明轮子。始终使用本机Windows Installer标准表和操作,而不是滚动您自己的进程外自定义操作。

解决方案是添加2个opencv dll文件,这些文件以某种方式没有作为依赖项添加。成功了。

为快速回复干杯。但我不这么认为。平台设置似乎都很好。你有更具体的fuslogvw日志吗?你的平台目标是什么?您是否检查了所有项目目标框架是否相同?我的平台目标是“任何CPU”(我也尝试过使用win32/x86)。所有项目都是win32或x86。我将编辑我的原始消息以包含日志的底部(我认为这与此无关)。问题是,如果我删除CustomAction命令,就没有问题了。InstallUtil自定义操作中有十几种其他故障模式,您还没有体验过。相信我,转储它并使用DTF重构代码。