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'.
感謝設置「刀具路徑」的實驗,這已經固定它。我已經卸載了Web Deploy 2.0,並且只剩下Web Deploy 3.5,但我的系統上仍然有兩個版本的MSDeploy.exe。添加了「ToolPath =」C:\ Program Files \ IIS \ Microsoft Web Deploy V3「,問題解決了。現在我有另一個奇怪的問題,但會在一個新的線程中打開它,再次感謝! – samaspin
關於很多自定義MSBuild任務,就是他們只是'包裝好'一些命令行調用,所以在某處(在用戶代碼MsBuild Task中),一個CommandLine.Exe被調用了參數,它會默認使用一些常用的ToolPath。一點經驗法則。 – granadaCoder