我正在尝试使用WIX版本5.0.2创建一个MSI文件。在我的VS项目中,我添加了Nuget软件包firegiant.heatwave.buildtools.wixext,以及VS2022的Heatwave扩展。我的目标是创建一个在程序文件中安装WPF应用程序的MSI。为此,它必须安装已发布的WPF。它还需要创建一个外观文件夹来存储一些图标,以及一个运行时文件夹来存储Python可执行文件以及Python的其他必要子文件夹和文件。我坚持尝试捕获WPF项目输出。到目前为止,这是我的代码:

问题描述 投票:0回答:1
<Project Sdk="WixToolset.Sdk/5.0.2"> <ItemGroup> <PackageReference Include="FireGiant.HeatWave.BuildTools.wixext" Version="5.0.3" /> <PackageReference Include="WixToolset.Heat" Version="5.0.2" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\AdjustrixWPF\AdjustrixWPF.csproj" Publish="true" HarvestOutputGroup="PublishedItemsOutputGroup" /> </ItemGroup> </Project>

当我尝试从命令行构建代码时,我会得到以下错误:
ErrorWix0200:组件元素包含一个未经处理的扩展元素“ HarvestProjectOutput”。请确保已提供了'http://www.firegiant.com/schemas/v4/wxs/heatwave/buildtools's namespace中元素的扩展。
C:\ users \ denis \ source
EPOS \ Adjustrix \ Adjustrixwpfinstaller \ package.wxs(27):错误WIX0230:组件/@Guid Attribute的值'*'对此组件无效,因为它不符合具有自动生成的GUID的标准。使用目录作为键盘或包含ODBCDATASOURCE子元素的组件不能使用自动生成的GUID。确保您的组件没有目录作为键盘,并将任何ODBCDATASOURCE子元素移至具有显式组件GUID的组件。
C:\ users \ denis \ source
EPOS \ Adjustrix \ Adjustrixwpfinstaller \ package.wxs(27):错误Wix0330:component/@ID属性找不到;当没有有效的键盘用作默认ID值时,这是必需的。
我试图修复它,但被卡住了。任何帮助将不胜感激!

看起来好像您的设置正确。我的猜测是,将

PackageReference

线添加到.wixproj之后,您没有进行“还原”。以下任何选项都可以使用:

installation deployment wix windows-installer heat
1个回答
0
投票
PackageReference

从命令行中,将还原您的所有软件包引用并执行默认操作(通常为“构建”)。我几乎总是使用此命令行,因此我不必考虑是否进行了还原。

msbuild -Restore
从命令行结束(大部分)与第一个选项相同。我已经开始在命令行示例中采用此功能,因为它更容易(因此,总是有效)。
使用Visual Studio(带有热浪)。 Visual Studio作为构建过程的一部分做了很多事情。恢复就是其中之一。

    I在您的示例文件和工作中使用了。
  1. 
    
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.