0

Silverlight(5) プロジェクト、TFS (2010) のソース、および継続的インテグレーション ビルドがセットアップされ、正常に動作しています。ただし、現在、一部のユーザーにリリースして使用してもらい、フィードバックを提供しようとしている段階にあります。更新をチェックし、更新がある場合は最新の xap ファイルをダウンロードするようにコードを設定しました。ただし、これには xap ファイルに署名する必要があります。開発マシンからこれを行う場合は問題ありませんが、自動ビルドに関しては失敗し、メッセージが表示されます

Xap のパッケージ化に失敗しました。署名ツール SignTool.exe が見つかりません。

私はサインツールを認識させるために多くのことを試みましたが、できません。ただし、CI ビルドではこれは実際には必要ないため、ビルド後のイベントを VisualStudio で実行することを条件とする 2 つ目の方法を試しました。ここSOでさまざまな提案に従いましたが、それらを機能させることはできません。

ビルド後のイベントは

    if "$(BuildingInsideVisualStudio)" == "true" (
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "$(SolutionDir)castle.pfx" "$(TargetDir)Castle.xap"
copy "$(TargetDir)Castle.xap" "$(SolutionDir)Castle.Web\ClientBin"
)

まだ喜びはありません。これの複数のバリエーションを試しましたが、自動ビルドから同じメッセージが表示され続けます。

では、a) 署名ツールをビルド サーバーで認識させるか、b) 自動ビルドを取得してビルド後のイベントをスキップするのを手伝ってくれる人はいますか?

4

2 に答える 2

0

これは、このエラーの Google での上位の結果であるため、解決するための手順で更新します。

上記は私にとってはうまくいきませんでしたが、以下の手順を実行すると修正されるはずです。

  1. Windows 8.1 SDK をビルド サーバーにインストールします (私にとっては Windows 2008 R2)。
  2. Windows SDK BIN ディレクトリ (サーバー上の signtool.exe を含む) を環境 PATH 変数に追加します。例: c:\program files (x86)\Windows Kits\8.1\bin - 注: この前後に引用符を追加しないでください。
  3. ファイル パスを PATH 変数に追加した後、services.msc ですべての Visual Studio Team Foundation サービスを再起動します。これは、ビルドする前にこれらを再読み込みする必要があるためです。
于 2016-01-31T15:33:44.743 に答える
0

最後に問題が見つかりました...アプリが最新のxapファイルをダウンロードしてインストールするように、いくつかの機能を配置していました。これには署名が必要です。これがうまくいかなかったので、xap ファイルに署名するためのいくつかの指示に従いましたが、ここにいる他の開発者の 1 人が、ビルド後のイベントで上記のコードを配置したことに気づきませんでした。これは、[Sign The Xap File] チェック ボックスをオンにした結果として作成されたものだと誤解していました。

最初の問題は、他の開発者が自分の pfx ファイルを私たちと共有して証明書ストアに追加しなかったことです。2 つ目の主な問題は、その後 2 回の署名試行が行われたことです。チェックボックス経由のものとビルド後のイベント経由のもの。チェックボックスを削除したところ、問題なく動作しました。チェック ボックスの問題は、SignTool.exe が特定の場所にあると想定していることです。完全なVSを備えた開発ボックスでは、それが探している場所ですが、ビルドサーバーではそうではありませんでした. 64ビットマシンと関係があるかもしれないと考えてください。ビルド イベントのみを使用して (正しい証明書をインストールしたら)、signtool の場所を明示的に指定し、必要に応じて Windows SDK をその場所にインストールできます。

于 2013-04-03T09:42:47.580 に答える