[英]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而無法運行。
_bin_deployableAssemblies
文件夾放置在適當的位置,但是看來這在Visual Studio 2012中不起作用 。 我用盡了所有可以嘗試的東西。 好吧,我總是可以手動復制文件,如一些在其他地方提出的答案所建議的那樣,但這違背了目的。
有任何想法嗎?
更新
在上面的要點中添加了我嘗試過的對我不起作用的更多內容。
這個怎么樣:
我找到了答案。 這有點駭人,因為我無法使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.