2016-09-01 5 views
0

ローカライズされたdllへの参照を持つカスタムアクションに問題があります(X.dllとしましょう)。私がCAプロジェクトをビルドすると、binフォルダーに複数の言語フォルダー(de、fr、...)が表示されます。各フォルダーには、その言語に対応するX.resources.dllが含まれています。この問題は、セットアップを実行するときに表示されます。 CAバイナリを抽出すると、言語フォルダはそこにありません。代わりにX.resources.dllファイルは1つのみ表示されます。 これらのリソースのすべてが存在する必要があります。そうしないと、処理が失敗します。WIx CustomActionにローカライゼーションフォルダがありません

なぜこのようなことが起こり、抽出されたものがCAプロジェクトのbinフォルダにあるものと同じではないのか、誰かが気付いていますか?

セットアップはすべてのカルチャを構築するように構成されています。

答えて

0

makesfxCA.exeのcmd行にさらにファイルを含める方法があります。私は、$(CustomActionContents)msbuildプロパティを定義する必要があると思います。これは、含めるファイルへのパスのリストです。

wix.ca.targetsファイルのカスタムアクションプロジェクトの最後に実行されるmsbuildターゲットが表示されます。

これは、ルートパスにすべてのインクルードファイルを置くかどうかわかりませんので、重複した名前のdllで問題が発生する可能性があります。あるいは、サポートされているすべての言語用にローカライゼーションDLLを1つ作成する方法を理解することはできますが、これは難しいかもしれません。

+0

$(OutputPath).. \ .. \ de \ File.resources.dll; $(OutputPath).. \ .. \ esのようなプロジェクトファイルにフォルダを追加しようとしました。 最初のケースでは、File.reosources.dllは別の言語で別のものが存在するため上書きされ、パッケージにはディレクトリが存在しないため上書きされます。 2番目の例では、フォルダを取得しようとしましたが、ビルド時に "System.UnauthorizedAccessException:パスへのアクセスが拒否されました"というエラーが表示されます。 フォルダを含めることなく、他のファイルを上書きするため、ファイルを含める必要はありません。 – danis

+1

これは、私が心配していたことです。= /私は実際に見て回って、これを発見しました。(https://buildmaestro.wordpress.com/2011/08/30/c-dtf-using-locale-net- makefxca-exe /)(< - ハイパーリンク)のように、あなたが望むものでなければなりません! –

+0

リンクをありがとう。一つのことを除いて私が期待したものです:cmd.exeのコマンド長は8192文字です。パスを含むファイルが8192文字より長いMakeSfxコマンドを生成すると、エラーが発生して失敗します。私はコマンドの長さを制限することができるかどうか、またはBinフォルダを圧縮し、ビルドのzipを含め、CAメソッドに実際のアクションの前にzipを抽出するなどの代替ソリューションを使用できるかどうかを調べようとします。このソリューションを見つけてくれてありがとう! – danis

関連する問題