3

私のCMSが正しく機能するには、wwwルートの下の仮想ディレクトリにデプロイして、管理するWebサイトに(リフレクションを介して)アクセスできるようにする必要があります(注:CMS = N2CMS)。Visual Studioの「Webに公開」を使用する場合は、すべて問題ありません。しかし、msbuildコマンドラインを介してパッケージを生成し、そのバージョンを公開すると、仮想ディレクトリが仮想アプリケーションに変換されます。

IIS Webアプリケーション(「exampleapp」)の下に仮想ディレクトリ「/ n2」を持つようにリモートサーバーを構成し、このパスをパッケージ/公開Web設定(宛先サーバーで使用するIIS Webサイト/アプリケーション名)で構成しました。 VisualStudioのプロジェクト。

デプロイパッケージを生成するには:

msbuild.exe myproject.csproj /T:Package

これにより、実行するMsDeployコマンドラインバッチファイル(標準のmsbuild / msdeployターゲット)とともにコードのzipパッケージが生成されます。

生成されたSetParameters.xmlには、次のものが含まれています。

<?xml version="1.0" encoding="utf-8"?>
<parameters>
  <setParameter name="IIS Web Application Name" value="exampleapp/n2" />
</parameters>

生成されたSourceManifest.xmlには、次のものが含まれています

<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
  <IisApp path="C:\...shortened-path...\PackageTmp" managedRuntimeVersion="v4.0" />
  <setAcl path="C:\...shortened-path...\PackageTmp" setAclResourceType="Directory" />
  <setAcl path="C:\...shortened-path...\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" />
</sitemanifest>

仮想ディレクトリが仮想アプリケーションに変換される理由を誰かが手がかりを得ましたか?

4

2 に答える 2

4

Microsoft.Web.Publishing.targetsファイルでは、DeployAsIisAppのデフォルトはtrueです。

<DeployAsIisApp Condition = "'$(DeployAsIisApp)' ==''"> true </ DeployAsIisApp>

プロジェクトファイルまたはプロジェクトフォルダの.wpp.targetsファイルの適切なPropertyGroup要素に追加することで、falseにオーバーライドできるはずです。プロジェクトファイルの編集については、を参照してください。

http://msdn.microsoft.com/en-us/library/ff398069.aspx

于 2012-02-18T02:32:51.803 に答える
4

Webアプリケーションプロジェクト(WAP)をIISアプリケーションとしてマークせずに仮想ディレクトリに公開すると、次の展開パラメーターの組み合わせ(csproj内)で成功しました。

<DeployOnBuild>True</DeployOnBuild>
<DeployAsIisApp>False</DeployAsIisApp>
<DeployIisAppPhysicalPath>MyWebSite/MyVirtualDirectory</DeployIisAppPhysicalPath>
于 2012-06-22T15:06:36.403 に答える