2

私はこの問題を抱えています:

私は VS 2008 Team Suite を使用しており、WinForms csproj を持っています。ClickOnce を使用して公開したい。

csproj のパブリッシュ プロパティには、次の値があります。

公開フォルダーの場所 (Web サイト、FTP サーバー、またはファイル パス): C:\ClickOnce\Frk.Security.CarWin.WebInstall\Publicacion\

インストール フォルダの URL (上記と異なる場合): http://CHANGETHESERVER/carwinclickonce/Publicacion/

公開バージョン: 1.0.0.0

前提条件: Windows インストーラー 3.1、.NET 35.sp1

今、私は公開し、すべて問題ありません。アプリを複数のマシン (開発、運用前、運用環境など) にデプロイする必要があり、Msbuild を使用しています...

<Microsoft.Sdc.Tasks.Folder.CopyFolder
    Source="Publicacion"
    Destination="$(Directorio_Destination)\Publicacion" />

フォルダー内の別のマシンにコピーC:\ClickOnce\Frk.Security.CarWin.WebInstall\Publicacion\します (このフォルダーは Web サイトのルートです)

\\desiis\c$\Webs\carwinclickonce\Publicacion\ 

( http://desiis/carwinclickonce/Publicacion/ )

私は MSBUILD と Mage をこのように使用しています。変数 $(ProviderUrl) = http://desiis/carwinclickonce/Publicacion/

<Target Name="PublishClickOnce">
    <Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -pu $(ProviderUrl)" />

    <Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -cf $(CertDir)\Frk.Security.CarWin_TemporaryKey.pfx" />
  </Target>

今、 http://desiis/carwinclickonce/Publicacion/publish.htmに自分の publish.htm があります。

アプリケーションをインストールするには、次の 2 つのリンクがあります。 1. ) http://desiis/Carwinclickonce/Publicacion/Frk.Security.CarWin.application

このオプションではすべて問題ありません。

  1. ) http://desiis/Carwinclickonce/Publicacion/Setup.exe

このオプションはエラーになります!

エラーは次のとおりです。

エラー意図的なダウンロード ' http://CHANGETHESERVER/carwinclickonce/Publicacion/Frk.Security.CarWin.application '. (「http....Frk.Security.CarWin.application」をダウンロードしようとすると失敗します)

「C:\DOCUME~1\xxxxxx\CONFIG~1\Temp\VSD5B7.tmp\install.log」を参照してください。

install.log の内容:

次のプロパティが設定されています: プロパティ: [AdminUser] = true {boolean} プロパティ: [ProcessorArchitecture] = Intel {string} プロパティ: [VersionNT] = 5.1.3 {version} パッケージ 'Windows Installer 3.1'、フェーズのチェックを実行しています

BuildList パッケージ 'Windows Installer 3.1' に次のプロパティが設定されています: コマンド 'WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe' のチェックを実行しています プロパティ 'VersionMsi' と値 '3.1' で演算子 'VersionGreaterThanOrEqualTo' を実行した結果: true コマンド 'WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe' のチェック結果は 'Bypass' 'Windows Installer 3.1' RunCheck 結果: インストール不要

アプリケーションの起動。URLDownloadToCacheFile が HRESULT '-2146697211' エラーで失敗しました: エラー アル インテンタル デスカーガー ' http://CHANGETHESERVER/carwinclickonce/Publicacion/Frk.Security.CarWin.application '. (「http....Frk.Security.CarWin.application」をダウンロードしようとすると失敗します)

何か案は?Mage.exe コマンドを使用できますか? setup.exe を変更するにはどうすればよいですか?

アップデート:

setup -url= http://desiis/ ....を使用するには msbuild を使用します。

<Exec Command="$(PublishDir)\setup -url=$(ProviderUrl)" />

もう 1 つの問題は、/url スイッチを使用して URL を変更した後、アセンブリの署名が無効になることを手動で確認するメッセージ ボックスが表示されることです。

  1. サイレント モードで setup -url=http://.... を使用するにはどうすればよいですか?
  2. setup.exe に再度署名するにはどうすればよいですか?

私のmsbuild

<Target Name="PublishClickOnce">

<Exec Command="$(PublishDir)\setup -url=$(ProviderUrl)" /> 
<Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -pu $(ProviderUrl)" /> 
<Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -cf $(CertDir)\Frk.Security.CarWin_TemporaryKey.pfx" /> 

</Target>
4

2 に答える 2

1

明確にするために、ClickOnce は機能します。問題は、Visual Studio が前提条件をインストールするために生成する setup.exe ブートストラップ ファイルにあります。偽のサーバー名 (CHANGETHESERVER) を使用し、デプロイ先のサーバーに応じて後で変更します。.applicationファイルのサーバー名は簡単に変更できますが、前提条件のインストール後にhttp://CHANGETHESERVER/ ... を起動しようとするため、setup.exe ファイルを修正する方法がわかりません。これはすべて正しいですか?

正しい URL を指すように setup.exe ファイルを更新する方法がわかりません。しかし、私はそれを更新することを心配しません。Visual Studio に移動し、「CHANGETHESERVER」を実際のサーバー (開発サーバーなど) に変更して公開します。生成された setup.exe は、使用したサーバーに適しています。その .exe のコピーを保持し、他のサーバー (QA、運用など) に対してプロセスを再度実行します。サーバー固有のファイルを各サーバーにデプロイすれば完了です。

前提条件を追加/削除しない限り、setup.exe ファイルは変更されません。デプロイするたびに新しいものを生成してデプロイする必要はありません。

于 2010-02-03T14:10:35.733 に答える
0

アップデート:

これで、公開してすべてOKです。パブリッシュを複数のマシン (開発、運用前、運用環境など) にデプロイする必要があり、Msbuild を使用しています。

次に、MSBUILD を使用して

 <Microsoft.Sdc.Tasks.Folder.CopyFolder Source="Publicacion" Destination="$(Directorio_Destination)\Publicacion" />

C:\ClickOnce\Frk.Security.CarWin.WebInstall\Publicacion\ を別のマシンのフォルダー (このフォルダーは Web サイトのルート) にコピーします。

\desiis\c$\Webs\carwinclickonce\Publicacion\

( http://desiis/carwinclickonce/Publicacion/ )

私は MSBUILD と Mage をこのように使用しています。変数 $(ProviderUrl) = http://desiis/carwinclickonce/Publicacion/

<Target Name="PublishClickOnce">
    <Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -pu $(ProviderUrl)" />

    <Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -cf $(CertDir)\Frk.Security.CarWin_TemporaryKey.pfx" />
  </Target>
于 2010-02-02T18:30:26.253 に答える