簡體   English   中英

Visual Studio 2012未發布System.Web.Helpers

[英]System.Web.Helpers not being published by Visual Studio 2012

我完全被這個困擾。 我通過Google Stack溢出發現的想法對我不起作用,我也不知道為什么。

我們最近將項目升級到了帶有.NET 4.5的Visual Studio 2012和MVC 4,現在該項目無法正確發布。

我們還有另一個分支,該分支只是在Visual Studio 2012中發布項目,而無需升級到MVC4或.NET4.5,並且似乎可以正常工作,因此我猜測這不是Visual Studio問題。 就像在我們的項目中設置MVC 4一樣。 通過直接從我們在源代碼管理中創建的lib文件夾(但不在任何項目中)引用DLL來添加MVC 3。 MVC 4是通過NuGet添加的。

問題是System.Web.Helpers(以及其他)沒有出現在已發布應用程序的bin目錄中。 這意味着,當它放在測試服務器上時,它將由於缺少DLL而無法運行。

  • 我已將“本地復制”設置為TRUE(實際上已經是,但是如果關閉又重新打開,則將其關閉)。 我還在某處讀到,如果該文件存在於GAC中,則此設置是什么都不會影響,也不會復制。 但是,我已經檢查過了,它不在GAC中。
  • 我確保MVC應用程序中的引用指向NuGet包文件夾中文件的版本。 (它不是最初的,但是我手動編輯了csproj文件來執行此操作,因為刪除和讀取NuGet包無濟於事)
  • 我添加了一個構建后事件來復制相關文件(盡管它們位於項目的bin目錄中,但這並不影響發布)
  • 根據Phil Haack的博客 ,我嘗試將_bin_deployableAssemblies文件夾放置在適當的位置,但是看來這在Visual Studio 2012中不起作用
  • 我已經嘗試修改csproj文件(這只是一個MSBuild文件), 按照此SO答案為我復制相關文件。 但是出於某種原因,它也不起作用。

我用盡了所有可以嘗試的東西。 好吧,我總是可以手動復制文件,如一些在其他地方提出的答案所建議的那樣,但這違背了目的。

有任何想法嗎?

更新

在上面的要點中添加了我嘗試過的對我不起作用的更多內容。

這個怎么樣:

  1. 右鍵單擊解決方案資源管理器中的MVC項目。
  2. 添加可部署的依賴項
  3. 勾選MVC

我找到了答案。 這有點駭人,因為我無法使MSBuild copy命令正常工作,因此我使用Exec命令獲取xcopy來為我執行復制。

首先,我在項目中添加了一個名為_bin_PublishAssemblies的文件夾,並在其中放置了需要發布的程序集,以使構建過程尚未開始。

然后,在csproj文件的末尾添加了以下內容:

  <Target Name="AfterBuild">
    <Message Text="Build | Copying assemblies to output folder ($(OutputPath))" Importance="high" />
    <Exec Command="ECHO Going to copy from '$(ProjectDir)\_bin_PublishAssemblies'" />
    <Exec Command="xcopy $(ProjectDir)\_bin_PublishAssemblies\* $(OutputPath) /Y" />
  </Target>
  <Target Name="CopyBinFiles" AfterTargets="CopyAllFilesToSingleFolderForPackage" BeforeTargets="MSDeployPublish">
    <Message Text="Deploy | Copying assemblies to output folder ($(_PackageTempDir)\bin\)" Importance="high" />
    <Exec Command="ECHO Going to copy from '$(ProjectDir)\_bin_PublishAssemblies'" />
    <Exec Command="xcopy $(ProjectDir)\_bin_PublishAssemblies\* $(_PackageTempDir)\bin\ /Y" />
  </Target>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM