1

製品の ClickOnce 展開を自動化しているところです。ビルド スクリプトに ANT を使用していますが、答えが見つからない問題が発生しています。プロジェクトをビルドし、必要なファイル (EXE、DLL など) をステージング ディレクトリにコピーできます。コマンド プロンプトを開いて mage.exe を手動で実行し、アプリケーション マニフェストと配置マニフェストの両方を生成して署名できます。これにより、インストールして実行する実用的な展開が得られます。これを ANT スクリプトで自動化しようとすると、問題が発生します。私は製品をコンパイルし、問題なくコピーします。アプリケーション マニフェストの作成に関しては、すべてのファイルに対して次のエラーが発生します。

警告 MSB3178: アセンブリ {assemblyName} がファイルとして正しく指定されていません。

まったく同じ mage コマンドが使用されていることに注意してください。ただし、スクリプトから実行すると、この警告が表示されます。これは最終的には実際にはエラーです。このエラーのため、アプリケーション マニフェスト ファイルが無効であり、製品がユーザーのマシンにインストールされません。繰り返しますが、コマンド プロンプトで同じコマンドを手動で入力すると機能し、デプロイはうまくいきますが、スクリプトからは機能しません。すべてのプロパティが正しいことが検証され、すべてのパスも正しいです。また、すべてのハードコードされた値 (プロパティなし) を使用してコマンドを実行しようとしましたが、エラーが持続します。

どんな助けでも大歓迎です。

<target name="foo">
  <exec executable='${mage}'>
    <arg line='-New Application 
              -Processor x86 
              -ToFile 'D:\BuildSynch\ClickOnce\TabletMPE\1.0.0.0\TabletMPE.exe.manifest' 
              -name 'TabletMPE'
              -Version 1.0.0.0 
              -FromDirectory '1.0.0.0'"/>
</exec>
</target>
4

1 に答える 1

0

あなたのコードは確かに私には正しくないようです。私はこれを試してみます:

<exec executable='${mage}'>
    <arg line='-New "Application" -Processor "x86" -ToFile "D:\BuildSynch\ClickOnce\TabletMPE\1.0.0.0\TabletMPE.exe.manifest" -name "TabletMPE" -Version "1.0.0.0" -FromDirectory "1.0.0.0"'/>
</exec>

さらに、ant マニュアルで強く推奨<arg value=""/>されているを使用してみてください。

于 2011-11-08T09:24:01.950 に答える