2011-12-05 81 views
5

我在構建appharbor上的silverlight項目時遇到了問題(某些dll被忽略)。前 我以下錯誤:無法在appharbor上構建silverlight應用程序

"error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft\Expression\Blend\Silverlight\v4.0\Microsoft.Expression.Blend.Silverlight.targets" was not found". 

這就是爲什麼我評論的csproj文件1行:

"Import Project="$(MSBuildExtensionsPath)\Microsoft\Expression\Blend\Silverlight\v4.0\Microsoft.Expression.Blend.Silverlight.targets"" 

現在我在建設新接收的錯誤。在這裏你可以看看堆棧跟蹤: http://pastebin.com/bKYkDzRa 有誰知道我可以如何解決這個問題?

問候, 雅羅斯拉夫

回答

4

您需要將所需的dll添加到Lib文件夾並將lib文件夾發佈到AppHarbor站點。

Have a look at this example步驟24解決了同樣的問題:

  • 在Visual Studio中創建一個名爲庫的DemoApp.Web項目的文件夾。該文件夾將包含Web應用程序依賴的所有程序集,而不是.NET Framework的一部分。通過將它們放到這個文件夾中並用「複製到輸出」標記它們,程序集將在AppHarbor上部署和使用。如果您不將程序集添加到此文件夾,它們將不會成爲版本控制中的文件的一部分,也不會上傳到BitBucket和AppHarbor。

  • 將zip從Hammock中複製到Lib文件夾。

  • 在包含該解決方案的文件夾中打開命令提示符。執行以下命令:subst S:DemoApp.Web \ Lib這將Lib文件夾映射到虛擬S:驅動器。這樣做的原因是Visual Studio項目將包含dll的絕對路徑,並且當源被下載到多臺計算機時,這些路徑將會不同。該subst將解決這個問題。我甚至創建了一個小批處理文件,爲我做這個並將它放在解決方案文件夾中。

  • 在Visual Studio中,右鍵單擊Lib文件夾並選擇添加|現有項目並將Hammock和JSON dll添加到項目中。確保您將它們標記爲「複製到輸出」。 右鍵單擊DemoApp.Web項目並選擇「添加引用」。單擊瀏覽並導航到S:驅動器並添加這兩個DLL。

+0

嗯,我添加的文件到LibFolder和更新的參考項目,但他們仍然參照已安裝的DLL(C:\ Program Files文件(x86)的\參考大會\微軟\框架\ Silverlight的\ V4.0 \ System.Windows例如.Browser.dll)。 –

+1

您必須刪除引用並通過指向Lib文件夾中本地複製的dll再次添加引用。爲了獲得最佳效果,建立一個虛擬驅動器S:使用指向Lib文件夾的'subst'並且引用'S:\ my.dll'這樣,只要您正確設置了S驅動器,您就可以將項目移動到任意位置。 –

+0

是的,我刪除並從Lib文件夾中添加,但他們仍然指向程序文件。真奇怪... –

3

您在上面顯示的是因爲Expression Blend的SDK是不是在構建服務器上安裝的錯誤。由於它沒有安裝,MSBuild無法找到Blend構建目標。我不確定這是AppHarbor支持或計劃支持的內容,但我建議您與他們聯繫,看他們是否可以爲您安裝此SDK。

相關問題