小编mar*_*dle的帖子

Wix工具集检查.Net 4.6.2

我正在使用Wix Toolset v3.10.3并且我试图让我的MSI检查机器上是否安装了.Net 4.6.2

根据这里的页面我应该能够使用以下属性

<PropertyRef Id="WIX_IS_NETFRAMEWORK_462_OR_LATER_INSTALLED"/>
Run Code Online (Sandbox Code Playgroud)

然后做这样的事情

    <Condition Message="This application requires .NET Framework 4.6.2. Please install the .NET Framework then run this installer again. If you require assistance, please contact [company name] support">
          <![CDATA[Installed OR WIX_IS_NETFRAMEWORK_462_OR_LATER_INSTALLED]]>
</Condition>
Run Code Online (Sandbox Code Playgroud)

但是当我构建时,我收到以下错误

Unresolved reference to symbol 'Property:WIX_IS_NETFRAMEWORK_462_OR_LATER_INSTALLED' in section 'Product:*'.
Run Code Online (Sandbox Code Playgroud)

有没有人对这个有任何想法?我可以看到.net 4.X系列的不同之处,但我看不出我做错了什么?

installation windows-installer wix

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

WinDbg MEM_COMMIT 为 1GB,eeheap 显示为 150MB,找不到剩余内存

我在尝试从 .dmp 文件中找到一些非托管内存分配时遇到了一些麻烦。

我一直在尝试遵循提示 -在这里,但我遇到了一些障碍

!address -summary给了我下面的内容,它显示 MEM_COMMIT 为 1.030Gb,这是预期的(请忽略 TB 内存,这可能是因为它来自虚拟 Web 服务器)

地址概要

!eeheap -gc给了我下面的内容,它显示 .net 内存使用量为 150MB(如果我自己运行!eeheap,我看不到任何额外的堆,我仍然看到 8 个 GC 堆,总共 150MB)

堆

这让我相信大部分内存使用来自非托管内存

我一直遵循的说明然后说使用!heap -s来查找非托管内存的位置。当我这样做时,我会看到以下内容

堆 -s

现在我希望看到大量内存被堆使用,我可以进一步分析以尝试定位非托管内存,但我没有看到任何接近填充的堆显示 1GB 的已用内存

我确实注意到!address -summary在 PAGE_READWRITE 中显示 600MB,所以我尝试了!address /f:PAGE_READWRITE ,我希望它能给我一些其他的东西,但它给了我一个 PAGE_READWRITE 使用的内存列表,我不太确定如何进一步分析

基本上我想知道 1GB 和 150MB 的 .net 分配内存之间的内存差异在哪里被使用

任何帮助都会很棒

memory memory-leaks memory-management windbg

6
推荐指数
1
解决办法
783
查看次数

Wix返回错误"在模块中找不到CA或UI入口点"但在dll中使用[CustomAction]

首先,为模糊的屏幕截图道歉并且不包括代码中的全名.

我在使用Wix Framework尝试使用dll中的自定义操作时遇到问题.

我正在使用Wix 3.10.2

我在我的解决方案下有一个名为Install.CustomAction的C#Custom Action项目.然后在主Wix项目中引用它.你可以在这看到

在此输入图像描述

我在主Product.wxs文件中将CA dll引用为二进制文件

<Binary Id="CustomActions.dll" SourceFile="$(var.<porjectname>.Install.CustomAction.TargetDir)<projectname>.CustomAction.CA.dll"/>
Run Code Online (Sandbox Code Playgroud)

现在在一个片段中,我有像这样引用的动作

<CustomAction Id="CA_RestoreDB" BinaryKey="CustomActions.dll" DllEntry="RestoreMobileDB" Execute="immediate" Return="check" />
<InstallExecuteSequence>
  <Custom Action="CA_RestoreDB" After="InstallFinalize"/>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

所以,尽管如此,我希望一切顺利.

在名为CustomAction.cs的实际c#文件中,我使用[CustomAction]属性进行了此设置

[CustomAction]

public ActionResult RestoreMobileDB(Session session)
{
    //string installPath = session.GetTargetPath(TARGETDIR);
    string x = session["INSTALLFOLDER"];
    session.Log("Begin CustomAction1");
    doSomeStuff(x, session);

    return ActionResult.Success;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切看起来都很好,而且我正在努力工作.但是当我来编译所有内容时,我得到了这个错误

    Severity    Code    Description Project File    Line    Suppression State
Error       The command ""C:\Program Files (x86)\WiX Toolset v3.10\bin\..\sdk\MakeSfxCA.exe" "C:\Work Files\Development\<product>\<solution>\<project>.Install.CustomAction\obj\x86\Release\<project>.Install.CustomAction.CA.dll" "C:\Program Files (x86)\WiX Toolset v3.10\bin\..\sdk\x86\SfxCA.dll" "C:\Work Files\Development\<product>\<solution>\<project>Install.CustomAction\obj\x86\Release\<project>.Install.CustomAction.dll" "C:\Program Files (x86)\WiX Toolset v3.10\SDK\Microsoft.Deployment.WindowsInstaller.dll;C:\Work Files\Development\<product>\<solution>\<project>.Install.CustomAction\CustomAction.config"" …
Run Code Online (Sandbox Code Playgroud)

installation installer windows-installer wix dtf

5
推荐指数
1
解决办法
744
查看次数