2016-05-04 14 views
1

私はWixStandardBootstrapperApplication.cppに変更を加えて、thisリンクの提案に従ってdllを生成しようとしています。 wix310-debugソースをダウンロードし、wix310-debug \ src \ ext \ BalExtension \ wixstdba \ locationにあるファイルを変更しています。WixStdBootstrapperApplicationをビルドできません - "C: tools WixBuild.props"というエラーが見つかりませんでした

Unable to read the project file "wixstdba.vcxproj". The imported project "C:\tools\WixBuild.props" was not found. 

私はこれを修正するために何をすべきかわからない:私はエラーを取得することをやろうたび私は、Visual Studio 2012を使用してオープンしようとしています。この場所の下にwixstdba.vcxprojファイルがあります。また、参照されているリンクに基づいて、私は正しいファイルを更新していると思いますが、そうでない場合は教えてください。これの助けがあれば素晴らしいだろう。前もって感謝します。デバッグソースは本当にのWiXのソースではありません

<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), wix.proj))\tools\WixBuild.targets" /> 

答えて

3

あなたvcxprojでは、このような行があります。これにはすべてのwixソースファイルが含まれていますが、実際にビルド可能ではありません。このzipにはすべてのpdbsが組み込まれており、デバッグにのみ使用されます。

wixstdbaをビルドできるように、wixソースをwixtoolset's githubからダウンロードしたいと考えています。しかし、これは現在のバージョン3.10.3であり、の場合はにいくつかのバージョン固有の変更がありますが、エンジンとブートストラップアプリケーションのインタフェースには、wix 3.10.2に対してビルドされたdllを使用した場合の問題はありません同じまま。

しかし、の場合は、のみを使用してWxStdBAプロジェクトでビルドすることができます。 wixstdbaフォルダーにコピーする必要があります。 vcxprojを編集し、上記のインポート行を削除します(下にあるはずです)。

これで、このプロジェクトを新しいソリューションに追加するか、Visual Studioのインストーラソリューションに追加します。追加のインクルードとライブラリディレクトリを追加する必要があります。これらのインクルードディレクトリはすべてあなたのwixインストール場所にあります(デフォルトのC:¥Program Files(x86)¥WiX Toolset v3.10)。プロパティ - > C/C++ - >一般 - >追加のインクルードディレクトリにwix SDKインクルードパスを追加します。 Visual Studio 2013を使用している場合は、フルパスを使用することも、 "$(WIX)\ SDK \ vs2013 \ inc"を使用することもできます。 $(WIX)は、wixをインストールするときに追加されるインストールディレクトリを指すWIX環境変数を参照する必要があります。マシン間で場所が異なる可能性があるので、wixがインストールされたビルドシステムでビルドする場合は、これがより良いオプションになるはずです。

追加ライブラリディレクトリの場合は、プロパティ - >リンカ - >一般 - >追加ライブラリディレクトリに進み、正しいlibパスを追加します。 Visual Studio 2013を使用している場合は、$(WIX)¥SDK¥vs2013¥lib¥x86に入れます。最後に、ブートストラップdllを構築するのに必要なライブラリを参照する必要があります。 Linker - > Input - > Additional Dependenciesで、 "dutil.lib; balutil.lib"を追加します。私の追加の依存関係にはもっとたくさんのものがあり、それがデフォルトであったかどうかは覚えていません。ここでは、 wixstdbaプロジェクトを構築し、構築されたDLLを得ることができる必要があり、とにかく

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とまったく同じになります。

wixに含まれているものの代わりにこのdllを参照してみることもできます(BootstrapperApplicationRefを使用して独自のBootstrapperApplicationを定義する必要があります)。または、このdllをwixの場所のbinにドロップします。

+1

この行をコメントアウトすると、 "ターゲット"ビルド "がプロジェクトに存在しませんでした。"私のためのエラー。後で私はその行を含め、それはいくつかのエラーで構築するように見えました。私は最初、標準のWixツールセットの場所からdutilとbalutil.libファイルをインクルードしましたが、それは問題を解決していないようです。次に、wixtoolsetのgithubフォルダからdutilとbalutilのlibファイルをビルドします(ソースコードの場所の下にsrc \ libs)、それらをインクルードしてビルドすることができました。おかげさまでブライアン、あなたは私のwix関連のクエリを解決するための大きな助けになりました。 – randomuser15995183

関連する問題