如何从 Wix 自定义操作构建中获取额外的 CA dll 到 nuget 包中?

问题描述 投票:0回答:1

我有一个在多个安装程序项目中使用的 Wix 自定义操作 DLL。我想将此 DLL 部署到我们的 nuget 存储库,以便更容易共享。但是,

dotnet pack
命令不会将正确的 DLL 放入包中。该项目构建了 2 个 DLL。
WixInstallTools.dll
WixInstallTools.CA.dll
。我实际上不确定安装程序项目是否需要这两个 DLL,但它们肯定需要
WixInstallTools.CA.dll
。如何将此 CA DLL 放入 nuget 包中。我在 Visual Studio 2022 环境中使用 Wix4。以下是我的项目文件。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <OutputPath>bin\$(Configuration)\$(Platform)</OutputPath>
    <Version>1.0.0.0</Version>
    <Authors>author</Authors>
    <Company>company</Company>
    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
    <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
    <DebugType>embedded</DebugType>
    
    <PackageId>WixInstallTools</PackageId>
    <PackageDescription>Wix Custom Action Library</PackageDescription>
    <PackageTags>WixInstallTools;Wix Install Tools;Wix;Install;Tools</PackageTags>
    <RepositoryUrl>https://github.com/company/nuget</RepositoryUrl>
  </PropertyGroup>

  <ItemGroup>
    <Content Include="CustomAction.config" CopyToOutputDirectory="PreserveNewest" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="WixToolset.Dtf.CustomAction" Version="4.0.4" />
    <PackageReference Include="WixToolset.Dtf.WindowsInstaller" Version="4.0.4" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="PresentationFramework" />
    <Reference Include="System.DirectoryServices.AccountManagement" />
  </ItemGroup>
</Project>
visual-studio wix nuget-package custom-action wix4
1个回答
0
投票

.CA.dll(本机 PE)包含 .DLL(.NET Framework 程序集)。这将被视为本机运行时依赖项。

如果可能的话...本页将解释如何实现。

https://learn.microsoft.com/en-us/nuget/create-packages/native-files-in-net-packages

现在您还可以将自定义操作转变为完整的 WiX 扩展。它们作为托管 DLL 进行分发,并且是编译器的构建时参考。查看 IIS、Util 等扩展的存储库。

© www.soinside.com 2019 - 2024. All rights reserved.