8

Visual Studio 2012では、公開プロファイルをWeb展開と一緒に使用すると、展開がかなり簡素化されます。しかし、それでもいくつか欠けているものがあるか、まだ使い方がわからないのかもしれません。

  • ユーザー名とパスワードを(特に)公開プロファイルに保存せずにNTLM認証を使用することを好みます。これはどのように行うことができますか?ユーザー名とパスワードを空のままにすると、プロンプトが表示されます。.pubxmlファイルを手動で変更するような方法はありますか?
  • PublishProfileName.pubxmlソース管理でチェックインしたPublishProfileName.pubxml.userのに、各ユーザーにローカルではなく、ユーザー名/パスワードが保存されているのはなぜですか?少なくともユーザー名を保存することはできますが、明らかにそれをチェックインしたくありません。
  • 構成自体はの一部ではありませんPublishProfileName.pubxmlが、として保存さPublishProfileName.pubxml.userLastUsedBuildConfigurationます。
  • プラットフォームについては最後のポイントと同じです。
  • マルチサーバー展開のサポートもありません。現在、プロファイルの公開に加えてバッチファイルを使用することを余儀なくされています。

編集

公開に適したコマンドラインは次のとおりです。

MSBuild.Exe MyProject.sln /p:Configuration=QA /p:DeployOnBuild=true;PublishProfile=PublishToQA;AllowUntrustedCertificate=true /p:authType=NTLM /p:UserName=

/p:Configuration=QAここでは、構成が公開プロファイル自体の一部になる場合は省略します。

4

2 に答える 2

5

あなたの質問に対するいくつかの答え。

  • ユーザー名とパスワードを (特に) パブリッシュ プロファイルに保存せずに NTLM 認証を使用することを好みます。これはどのように行うことができますか?ユーザー名とパスワードを空のままにしておくと、入力を求められます。.pubxml ファイルを手動で変更する方法はありますか?

認証は通常、Web Deploy のホスト方法によって行われます。デフォルトでは、Web 管理サービスを使用している場合、認証に IIS ユーザーを使用しています。IIS ユーザーを使用すると、特定のサイト/アプリへのアクセス許可を持つユーザーを制御できます。ただし、Windows認証を使用するようにWMSVCを構成することもできます。これらのシナリオで VS の使用に問題がある場合は、お知らせください。リモート エージェント サービスを使用して Web Deploy をホストしている場合、この場合は Windows 認証を使用します。

  • PublishProfileName.pubxmlソース管理にチェックインし たユーザー名/パスワードが保存され、PublishProfileName.pubxml.user各ユーザーにローカルではないのはなぜですか? 少なくともユーザー名を保存することはできますが、明らかにそれをチェックインしたくありません.

どの情報が非公開/共有であるかを判断するための別のメカニズムがあります。パスワードを除いて、すべての公開情報は共有されます (デフォルトでチェックインされます)。設計を簡素化するために、公開プロファイルを共有することも、まったく共有しないこともできます。一部のフィールドが共有され、他のフィールドが共有されていないというプロファイルがある中間はありません。パスワードはここでは特殊なケースであり、.pubxml.user ファイルでユーザーごと/マシンごとに暗号化されます。

非公開の発行プロファイルが必要な場合は、発行プロファイルに対応する .pubxml ファイルをチェックインできません。これらは Properties\PublishProfiles (または VB の場合は My Project\PublishProfiles) に保存され、プロジェクトから除外するだけで、ファイルをチェックインしません。公開ダイアログは、ディスク上のプロファイルだけでなく、ディスク上のプロファイルを検索します。プロジェクト。すべてが機能し続ける必要があります。

.pubxml.user ファイルに値を選択的に格納するという概念はサポートされていません。発行ダイアログは、設定された数の値のみをそのファイルに保存します。それ以外の

  • 構成自体は の一部ではありませんPublishProfileName.pubxmlが、 として保存さ PublishProfileName.pubxml.userLastUsedBuildConfigurationます。
  • プラットフォームについては、最後のポイントと同じです。

これは間違いで、.pubxml.user ファイルではなく、.pubxml ファイルに保存する必要がありました。その後、この問題は修正されましたが、まだアップデートをリリースする機会がありませんでした。

発行プロファイルで構成プロパティを設定することはできません。Configuration プロパティは、ビルド プロセスの中核部分です。より具体的には、このプロパティを Configuration と呼ばなかった理由は、.pubxml ファイルがビルドおよび公開中に .csproj/.vbproj の定義にインポートされるためです。他のプロパティは構成に基づいて定義されるため、一度設定すると値を変更することはできません。http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspxで、このテーマについてあまりにも多くの詳細をブログに書きました。この制限は、パブリッシュの制限ではなく、MSBuild のものです。コマンド ラインでは、次のように構成を指定する必要があります。 msbuild.exe myproj.csproj /p:...(その他のプロパティ)... /p:Configuration=

  • また、マルチサーバー展開のサポートもありません。現在、パブリッシュ プロファイルに加えてバッチ ファイルを使用せざるを得ません。

これについて直接的なサポートはありませんが、ニーズが拡大する場合は、私がお手伝いできるかもしれません。参考までに、興味のある拡張機能があります。5 分間のビデオをhttp://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspxに投稿しました。

于 2012-10-23T06:45:34.430 に答える
0

ファイルを手動で編集することは自由です(そして推奨されpubxmlます)ので、パスワードを自由に削除してください。

NTLMに切り替えるAuthTypeNTLMは、最初のでに変更しPropertyGroupます。

PlatformConfigurationビルド構成のままで、ファイルuserはそれらを保存するだけなので、VisualStudioは最後に展開した構成が何であったかを認識します。

マルチサーバーとは、Webファームを意味しますか?もしそうなら、基本的にプライマリサーバーから他のサーバーへのMSDeploy同期を実行するWebファームフレームワークを見てみるとよいでしょう。

または、コマンドラインに切り替えてpostSync、リモートサーバーにバッチファイルをアップロードして実行し、そこから他の展開をトリガーすることもできます。

于 2012-10-23T05:47:29.383 に答える