2012-02-14 4 views
1

ビルドスクリプトからMSDeployを実行すると、このNullReferenceExceptionが発生します。面白いのは、プロジェクトが展開するということです。これは私を夢中にさせている。注:これはWebアプリケーションプロジェクトではなく、Webアプリケーションプロジェクトです。私は私のビルドターゲットファイルでこれを使用していこのMSDeployのNullReferenceExceptionは何ですか?

"C:\TFS\MySiteBranch\Source\source.csproj" (Deploy target) (1) -> 
(Deploy target) -> 

C:\TFS\MySiteBranch\Source\Deploy.Targets(54,3): error MSB4018: The "MSDeploy" task failed unexpectedly.\r [C:\TFS\MySiteBranch\Source\source.csproj] 

C:\TFS\MySiteBranch\Source\Deploy.Targets(54,3): error MSB4018: System.NullReferenceException: Object reference not set to an instance of an object.\r [C:\TFS\MySiteBranch\Source\source.csproj] 

C:\TFS\MySiteBranch\Source\Deploy.Targets(54,3): error MSB4018: at Microsoft.Web.Publishing.Tasks.Common.Utility.MsDeployEndOfExecuteMessage(Boolean bSuccess, String destType, String destRoot, TaskLoggingHelper Log)\r [C:\TFS\MySiteBranch\Source\source.csproj] 

C:\TFS\MySiteBranch\Source\Deploy.Targets(54,3): error MSB4018: at Microsoft.Web.Publishing.Tasks.MSDeploy.Execute()\r [C:\TFS\MySiteBranch\Source\source.csproj] 

C:\TFS\MySiteBranch\Source\Deploy.Targets(54,3): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()\r [C:\TFS\MySiteBranch\Source\source.csproj] 

C:\TFS\MySiteBranch\Source\Deploy.Targets(54,3): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutio 

私は試すことができます何かのための任意のアイデア:

<ItemGroup>  
     <DeploySource Include="DirPath"> 
      <Path>C:\TFS\MySiteBranch\PrecompiledWeb\Source</Path> 
      <ComputerName>myComputer</ComputerName> 
      <UserName>anAdminAccount</UserName> 
      <Password>itsPassword</Password> 
     </DeploySource> 
    </ItemGroup> 

    <ItemGroup> 
     <TestDeployDest Include="DirPath"> 
      <Path>C:\TFS_Build\POC\Test</Path> 
      <ComputerName>myComputer</ComputerName> 
      <UserName>anAdminAccount</UserName> 
      <Password>itsPassword</Password> 
     </TestDeployDest> 
    </ItemGroup>  

    <Target name="Deploy"> 

     <PropertyGroup> 
      <WhatIf Condition="'$(WhatIf)'==''">false</WhatIf> 
      <MSDeployPath Condition="'$(MSDeployPath)'==''">C:\Program Files\IIS\Microsoft Web Deploy V2</MSDeployPath> 
     </PropertyGroup> 

     <MSDeploy Condition="'@(TestDeployDest)'!=''" 
      Whatif="$(WhatIf)" 
      Verb="sync" 
      Source="@(DeploySource)" 
      Destination="@(TestDeployDest)" 
      ExePath="$(MSDeployPath)" 
     /> 
</target> 

をここでエラーがですか?

+0

プロジェクトの深い階層が原因である可能性があります。どのバージョンのVisual Studioを使用していますか? – Bill

+0

私はVS 2010とTFS 2010を使用しています。これはWebサイトであり、ネイティブにプロジェクトファイルを使用していないので、自分のプロジェクトファイルをまとめなければなりませんでした。私はプロジェクトファイルを検証し、すべてのターゲットファイルが実行されています。 –

答えて

0

私はちょうど同じことに遭遇しました。問題の原因を特定できませんでしたが、MSDeployではなくVSMSDeployを使用して回避することができました。両方のタスクは同じDLLにあり、Microsoft.Web.Publishing.targetsで使用する例があります。

2

は、次のコードとしての場合msdeploy要素にのContinueOnError = "true" をを使用してみてください:私は同じ問題を持っていた

<ItemGroup>  
     <DeploySource Include="DirPath"> 
      <Path>C:\TFS\MySiteBranch\PrecompiledWeb\Source</Path> 
      <ComputerName>myComputer</ComputerName> 
      <UserName>anAdminAccount</UserName> 
      <Password>itsPassword</Password> 
     </DeploySource> 
    </ItemGroup> 

    <ItemGroup> 
     <TestDeployDest Include="DirPath"> 
      <Path>C:\TFS_Build\POC\Test</Path> 
      <ComputerName>myComputer</ComputerName> 
      <UserName>anAdminAccount</UserName> 
      <Password>itsPassword</Password> 
     </TestDeployDest> 
    </ItemGroup>  

    <Target name="Deploy"> 

     <PropertyGroup> 
      <WhatIf Condition="'$(WhatIf)'==''">false</WhatIf> 
      <MSDeployPath Condition="'$(MSDeployPath)'==''">C:\Program Files\IIS\Microsoft Web Deploy V2</MSDeployPath> 
     </PropertyGroup> 

     <MSDeploy ContinueOnError="true" Condition="'@(TestDeployDest)'!=''" 
      Whatif="$(WhatIf)" 
      Verb="sync" 
      Source="@(DeploySource)" 
      Destination="@(TestDeployDest)" 
      ExePath="$(MSDeployPath)" 
     /> 
</target> 
1

。我々はx64サーバーとWebアプリケーションを実行するようVSMSDeployタスクは、オプションではありません使用して、私にとって http://forums.iis.net/p/1187159/2016131.aspx#2016131

:とここに記載されている修正プログラムを使用して、それに対処するだけのことができました。 Visual Studioはx86バージョンのmsbuildとmsdeployのみを実行するため、VSMSDeployはx86サーバーとサイトでのみ動作します。 appHostConfigプロバイダを使用してIIS設定を保存していますが、appHostConfigはx64サイトをmsdeployのx86インスタンスに同期できません。

関連する問題