问题标签 [votive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wix - WiX在陌生的地方创建obj文件
在我的 WiX 3.5 项目中,我通过链接包含了一个 wxs 文件。即,wxs 文件不在项目文件夹中,它在文件夹结构中相当远,并且使用 Visual Studio 的“添加为链接”工具包含在内。
这工作正常。但它确实有一个奇怪的副作用,即 WiX 在一个奇怪的位置为包含的 wxs 创建了 obj 文件,创建了几个文件夹以在某种程度上(但不正确)模仿 WiX 项目文件夹和 wxs 文件所在的文件夹之间的路径结构位于。
有什么办法可以避免这种情况,所以 WiX 在与其他 obj 文件相同的位置创建这个 obj 文件,或者在 wxs 文件旁边创建它,而不是介于两者之间?
wix - VS2010 中没有任何 CustomActionAttribute
我正在尝试为我的 WiX 安装包编写自定义操作类库。我读过我应该使用 CustomActionAttribute 来标记我计划从安装包中调用的方法。VS2010 没有 Votive 插件,所以当我在方法名称上方键入 [CustomAction] 时,VS2010 找不到它。那么我应该怎么写自定义动作方法呢?
visual-studio - 无法让 Wix 自定义操作在 Votive/VS2010 中工作
帮助!我需要在我的 Wix 3.5 设置项目中执行托管自定义操作,无论我尝试了什么,我都无法让它工作。
我在 Visual Studio 2010 中使用 Votive 集成。我的 Wix Product.wxs 文件与 Visual Studio 模板基本没有变化,除了一些文本更改:
我已设置对我的托管自定义操作项目的引用,将 HARVEST 属性设置为 true。该项目被调用WIX.CustomActions
并产生WIX.CustomActions.dll
和WIX.CustomActions.CA.dll
我看到 Wix 在构建期间正在处理引用,并且WIX.CustomActions.dll
程序集显示在最终设置项目的二进制表中,但WIX.CustomActions.CA.dll
没有。
我有一个CustomActions.wxs
应该打包并调用自定义操作:
我查看了互联网上的各种“howto”资源,它们充其量是令人困惑的,并带有相互矛盾的建议。据我了解,该WIX.CustomActions.CA.dll
文件是一个非托管 dll,它加载 .NET 框架并将控制权传递给“真正的”托管自定义操作。但是,WIX.CustomActions.CA.dll
它没有打包在我的 MSI 文件中。我已尽我所能遵循示例,但我看不出有什么问题。
请问,有没有人在 Votive 有这个工作?你能给我一个实际的工作例子吗?
msbuild - 有没有办法自动提取 COM Interop 的注册表项?
当使用 Wix/Votive 创建具有 Visual Studio 集成的安装项目时,COM 注册似乎是功能集中的一个大漏洞。Visual Studio 和集成的 Visual Studio 安装项目都几乎毫不费力地做到了这一点。另一方面,Wix 让它变得非常痛苦。
在构建过程中,Votive 调用 Heat.exe 来收集引用的项目。为什么它不能在那时也收获 COM 互操作所需的注册表项?这会将流程集成到构建中,并使开发人员从这种令人头疼的琐事中解放出来。它还将维护一个声明性/数据驱动的安装过程。
有没有人考虑做这样的事情?我想有必要编辑一些 Wix MSBuild 目标,我对 MSbuild 没有足够的信心自己做。不过,我真的很想听听任何尝试过它的人的来信。
wix - 从命令输出中获取 WiX 属性值?
有没有办法执行命令(理想情况下在 PoSh 中)并将输出分配给 WiX 中属性的值?到目前为止,我所看到的只是将运行命令但不捕获输出或设置属性值的自定义操作。
asp.net - WiX (Votive) 项目参考 Harvesting (HEAT) 一个 ASP.Net Web 应用程序
我在做什么
我在 Visual Studio 2010 中有一个 ASP.Net Web 应用程序和一个 WiX 设置项目。我可以使用以下 HEAT 命令集显式收集 Web 应用程序作为设置项目的预构建事件:
“%WIX%\bin\heat.exe” 项目 "$(SolutionDir)Application.WebUI\Application.WebUI.vbproj" -o "$(ProjectDir)ProjectOutputContent.wxs" -pog 内容 -ag -template fragment -nologo -directoryid运行时文件夹
“%WIX%\bin\heat.exe” 项目 "$(SolutionDir)Application.WebUI\Application.WebUI.vbproj" -o "$(ProjectDir)ProjectOutputBinariesAndSymbols.wxs" -pog Binaries -pog Symbols -ag -template fragment - nologo -directoryid BINFOLDER
请记住,RUNTIME 文件夹和 BINFOLDER 是我在主要产品 WXS 文件中以声明方式设置的目录。
为什么我不喜欢它
这种方法很烦人,因为我需要先检查 HEAT 生成的片段 WXS 文件,然后才能构建安装项目。另一个考虑是它是一个 Web 应用程序,我需要将二进制文件和符号放到与内容不同的目录 (bin) 中。
我的目标是什么
我宁愿在 Wix 设置项目中使用项目引用,只需将 Harvest 属性设置为 True。然后我可以收集 BinariesContentSatellites 以在我的片段中获取我需要的项目,然后设置一个我可以在主要产品 WXS 中引用的目录 ID。问题是这会将内容、二进制文件和符号放在同一个文件夹中,我需要将后两者放在嵌套的 bin 文件夹中。我不能两次添加这个项目参考,每次都有不同的收获选项。
我的问题
有没有办法做我所追求的,或者我需要保持预构建事件?顺便说一句,我考虑过手动收集一次片段,没有构建事件,然后根据需要重新收集。我宁愿避免这种方法。
wix - 收割文件导致 LGHT0231 错误
我正在使用最新的还愿书(Wix v3.5)并创建了一个简单的 Wix VS 2010 安装项目。我添加了我的网站参考并将Harvest
选项设置为true
.
现在,由于我INSTALLDIR
指向 IISROOT 下的文件夹,我得到了这个 light.exe 错误:
[文件路径]:错误 LGHT0231:组件“cmp93982C4086FF8C75F07339DD7CEA8152”有一个密钥文件,路径为“TARGETDIR\webdir...[文件名].xml”。由于此路径未植根于标准目录之一(如 ProgramFilesFolder),因此此组件不符合自动生成 guid 的标准。(如果路径包含可能的标准目录,例如在 ProgramFilesFolder 下嵌套名称为“Common Files”的目录,也可能会发生此错误。)
虽然我了解此错误背后的原因,但我不一定同意其合理性(也许我不了解 Wix MSI 生成的先天工作原理)。
如何解决此错误?
提供一些上下文:
我正在尝试与 Team Build 一起进行设置。我可以使用旧格式并针对文件夹运行 Heat/Harvest 任务以绕过此问题,但不想走旧路线。
我对新的基于工作流的构建定义玩得还不够,所以不确定如何合并这个自定义任务。
每次构建安装项目时我都需要运行收获,因为我不想手动跟踪数百个文件。
wix - 将 MSBuild 变量传递给 Votive 中的链接器
我正在尝试动态命名我的 WiX 安装程序项目的输出,以便生成的 MSI 是 MyProject-Version-Configuration.msi(例如 MyProject-1.2.0.1325-Debug)。由于输出文件的名称是由链接器(light.exe)设置的,因此我认为我会在 WiX 项目的工具设置中使用附加参数:
不幸的是,$(TargetDir) 和 $(TargetExt) 在项目运行时没有被评估,所以 light 接收到:
这显然不会产生正确的输出。鉴于$(Configuration)
设置正确,我想知道为什么$(TargetDir)
而$(TargetExt)
不是?
我可以通过使用构建后事件重命名输出文件来解决这个问题,然后我可以访问$(TargetDir)
and$(TargetExt)
属性,但我想知道为什么链接器没有收到正确的命令。
wix - WiX 构建警告:媒体表没有条目
我正在尝试为 WiX 中的 .net 应用程序创建一个简单的安装程序。我安装了 Votive 并使用它创建的基本模板 wxs 文件。当我编译它时,我得到warning LGHT1076: ICE71: The Media table has no entries.
此外,当我运行安装程序时,它会在安装过程中启动并消失,并且“添加/删除程序”应用程序中没有条目。
这是 XML:
msbuild - 在构建放置路径上的 WiX 输出中创建文件夹
我有一个关于 WiX 的问题。但让我先描述一下我的情况:我有一个 VS2010 解决方案并添加了一个 WiX (Votive) 项目来进行设置。我正在 TFS 构建服务器上构建此设置。不幸的是,我的所有文件(*.dll、*.sql、*.msi、*.whatever)都被盲目地复制到同一个输出路径中!我在我的 Setup.csproj 文件中添加了一个带有 Move-Task 的 msbuild 目标,以将我的 msi、bat 和 sql 文件移动到单独的文件夹中,但不幸的是,这在 TFS-Build 上不起作用。
这是问题(恕我直言):我在 Votive 中所做的是一个早期阶段。我可以创建文件夹并移动文件,但是我在 csproj 文件中写入的内容是在 TFS 随机获取所有二进制文件并将它们放入放置位置之前完成的。
我如何尝试解决:
- 我在 wix2010.targets 文件中搜索了移动或复制命令,其中. 已移至 build_drop 但我无法找到它。
- 我查看了构建过程模板,但我不知道语言或语法。有什么关系吗?
- 在 Build Defaults 中的 Build defintion 中有复选框“此构建将输出文件复制到放置文件夹”,我必须在其中添加我的放置位置。有什么我可以在这里改变的吗?
我的问题:如何使用 WiX 安装文件创建子文件夹并将某些文件移动到 TFS 构建中?
我希望你能帮忙!提前致谢!