WiX源代码能否引用解决方案中其他项目的NuGet包?

5
我有一个由两个项目组成的解决方案:
  • .NET应用程序
  • WiX安装程序。
我知道,在WiX源代码中可以引用项目输出($(var.WindowsFormsApplication1.TargetFileName))。
现在我已经添加了一个NuGet包引用到我的.NET应用程序中。所以,我想将NuGet包内容包含到我的安装程序中。
有没有办法自动添加这些文件,而不是手动添加?
2个回答

5
我不认为它们有任何联系。我知道NuGet是什么,但我并没有经常使用它,因为它更多的是将你的.NET依赖项引入范围而不是软件分发。根据NuGet如何放置文件,您可以尝试类似于$(var.SomeProject.TargetDir)nuget_fetched.dll的操作。
这假定SomeProject使用NuGet以这样一种方式,即引用被复制到本地并在项目的Outdir中可用。

感谢您的回答。听起来不太好。在构建.NET项目后,NuGet包内容可在解决方案目录中获得...这就是我所说的“手动添加文件”。问题在于包结构可能会很复杂 - 这就是我想要避免的。 - Dennis
1
据我理解,NuGet 的主要目的在于以一种简单的方式拉取外部组件并将它们添加到您的项目中。我不认为它们涉及部署方面的内容。 - Christopher Painter
我认为这是目前最好的方法,因为包管理器可以从一个包中提供正确的库“flavour”(net40sl3等),否则你将不得不在安装程序中添加路径时硬编码或构建启发式算法(除了考虑包版本号)。话虽如此,我刚刚遇到了某些包的库未被设置为“复制本地”(但仅在一个开发人员的机器上),当依赖项不在预期位置时,它当然会破坏安装程序构建。 - anton.burger

1
我编写了一个Resharper实时模板来减少添加文件所涉及的大量输入,但基本上我只是手动添加文件。每个NuGet包创建一个Wix组件可以使事情保持整洁。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接