[英]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.