首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法生成WixStdBootstrapperApplication - get错误"C:\tools\WixBuild.props“未找到

无法生成WixStdBootstrapperApplication - get错误"C:\tools\WixBuild.props“未找到
EN

Stack Overflow用户
提问于 2016-05-04 17:07:48
回答 1查看 265关注 0票数 1

我正在尝试更改WixStandardBootstrapperApplication.cpp,并根据this链接的建议生成一个动态链接库。我已经下载了wix310-debug源代码,并且正在修改wix310-debug\src\ext\BalExtension\wixstdba\ location下的文件。在这个位置下有一个wixstdba.vcxproj文件,我正尝试使用Visual Studio2012打开它。每当我尝试这样做时,我都会得到错误:

代码语言:javascript
复制
Unable to read the project file "wixstdba.vcxproj". The imported project "C:\tools\WixBuild.props" was not found.

我不确定我应该做些什么来纠正这个问题。此外,根据引用的链接,我认为我正在更新正确的文件,但如果不是这样,请让我知道。这方面的任何帮助都是很好的。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-05 00:40:27

在你的vcxproj中有这样一行:

代码语言:javascript
复制
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), wix.proj))\tools\WixBuild.targets" />

调试源并不是wix的真正源码。它包含了所有的wix源文件,但它不是真正可构建的。这个压缩包包含所有已构建的pdbs,并且仅用于调试。

您希望从wixtoolset's github下载wix源代码,以便构建wixstdba。但是,这是目前的3.10.3版本,可能会有一些版本特定的更改,但我没有看到任何问题,使用这里针对wix 3.10.2构建的dll,因为引擎和引导程序应用程序接口应该保持不变。

但是,您应该只需要WixStdBA项目就可以构建所有这些内容。您必须复制wixstdba文件夹。编辑vcxproj并删除上面提到的导入行(它应该在底部附近)。

现在,将此项目添加到visual studio中的新解决方案或安装程序解决方案中。我们需要添加add、include和library目录。所有这些目录都将位于您的wix安装位置(默认为C:\Program Files (x86)\WiX ToolsetV3.10)中的Properties -> C/C++ -> General -> additional include目录添加您的wix SDK include路径。如果你使用的是visual studio 2013,你可以使用完整路径,也可以使用"$(WIX)\SDK\vs2013\inc“。$( wix )应引用WIX环境变量,该变量指向安装wix时添加的安装目录。如果您要在安装了wix的构建系统上构建,这应该是更好的选择,因为不同机器的位置可能不同。

现在,对于附加库目录,我们转到Properties -> Linker -> -> Additional library目录,然后添加正确的库路径。如果你使用的是visual studio 2013,你想放入$(WIX)\SDK\vs2013\lib\x86。最后,我们需要引用构建引导程序dll所需的库。在Linker -> Input -> Additional Dependencies下,添加"dutil.lib;balutil.lib“。我的附加依赖项有更多的东西,我不记得它是否是缺省的。不管怎样,下面是我的附加依赖项

代码语言:javascript
复制
dutil.lib;balutil.lib;advapi32.lib;comctl32.lib;comdlg32.lib;gdi32.lib;gdiplus.lib;kernel32.lib;msimg32.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;shlwapi.lib;user32.lib;uuid.lib;wininet.lib;winspool.lib;version.lib;%(AdditionalDependencies)

这样,您就可以构建wixstdba项目并构建dll了。在不编辑任何代码的情况下,这应该与wix包含的wixstdba.dll完全相同。

您可以尝试引用此dll,而不是wix包含的dll (必须定义自己的BootstrapperApplication,而不是使用其中一个wix的BootstrapperApplicationRef ),或者直接将此dll放入wix位置的bin中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37023191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档