2013-10-25 14 views
0

我在MSBuild腳本中嘗試使用MSDEPLOY任務來部署到遠程服務器。MSDEPLOY:無法將類型爲'Microsoft.Web.Deployment.DeploymentProviderOptions'的對象轉換爲相同類型的錯誤

<Target Name="Deploy_v2"> 
    <ItemGroup> 
     <DeploySource Include="package"> 
      <Path>$(PackagePath)</Path> 
     </DeploySource> 
     <DeployDestination Include="auto"> 
      <ComputerName>https://C3PO:8172/msdeploy.axd</ComputerName> 
      <UserName>C3PO\developer</UserName> 
      <Password>Password123</Password> 
      <AuthType>Basic</AuthType> 
     </DeployDestination> 
    </ItemGroup> 
    <Message Text="About to deploy!!" /> 
    <MSDeploy 
     Verb="sync" 
     Source="@(DeploySource)" 
     Destination="@(DeployDestination)" 
     AllowUntrusted="true" 
    /> 
    </Target> 

當我試圖運行此我得到一個非常奇怪的消息,如下圖所示:

MSDEPLOY : error : Unable to cast object of type 'Microsoft.Web.Deployment.DeploymentProviderOptions' to type 'Microsoft.Web.Deployment.Deployme 
ntProviderOptions'. 

回答

1

搜索你的硬盤爲「MSDeploy.exe」 ......看看有多少不同的版本你有。

然後再次

<MSDeploy 
    ToolPath="C:\OneOfTheFoldersWithMsDeployExeInIt" 
    Verb="sync" 
    Source="@(DeploySource)" 
    Destination="@(DeployDestination)" 
    AllowUntrusted="true" 
/> 
+0

感謝設置「刀具路徑」的實驗,這已經固定它。我已經卸載了Web Deploy 2.0,並且只剩下Web Deploy 3.5,但我的系統上仍然有兩個版本的MSDeploy.exe。添加了「ToolPath =」C:\ Program Files \ IIS \ Microsoft Web Deploy V3「,問題解決了。現在我有另一個奇怪的問題,但會在一個新的線程中打開它,再次感謝! – samaspin

+0

關於很多自定義MSBuild任務,就是他們只是'包裝好'一些命令行調用,所以在某處(在用戶代碼MsBuild Task中),一個CommandLine.Exe被調用了參數,它會默認使用一些常用的ToolPath。一點經驗法則。 – granadaCoder

相關問題