这可能是一个非常基本的问题,但是文件夹下的DLL packages
被复制到bin
文件夹的机制是什么?
作为一个例子,我有一个解决方案,其中包含Web站点类型的单个"项目"(节点)(即,不csproj
,只是基于文件系统).这是一个非常基本的静态网站.我想添加ASP.NET Web Pages支持,所以我安装了这个NuGet包,现在该packages
文件夹下有一些DLL ,我web.config
已经更新了.但是,当我运行该站点时,它显示YSOD错误"无法确定使用哪个版本的ASP.NET网页",我猜是因为其中没有bin
包含DLL的文件夹(当我创建"Razor"时)在Visual Studio中从头开始,该bin
文件夹就在那里).如果我尝试重建解决方案,它会失败并出现相同的错误,即此次编译错误(不是运行时错误).
bin
从packages
文件夹中恢复文件夹的命令或机制是什么?我不希望在我的源代码控制中有DLL,根据NuGet文档,似乎非常支持这个工作流程.我想如果它是基于csproj的项目,会有一些MS Build动作或类似的东西来使用packages
文件夹中的DLL,但这是一个网站,我无法定义高级构建操作,可以吗?
Mat*_*ard 12
使用Visual Studio 2013,当我将NuGet包(如Microsoft.AspNet.Razor)安装到ASP.NET网页应用程序中时,将创建bin文件夹.
将二进制文件放入bin文件夹是构建过程的一部分,NuGet不会这样做.NuGet可用于将文件恢复到packages文件夹中,但在恢复时不会对bin文件夹执行任何操作.
要使构建和包恢复工作,您似乎需要保留bin文件夹和任何.refresh文件.您可以从版本控制系统中删除其他二进制文件.
System.Web.Razor.dll.refresh
Run Code Online (Sandbox Code Playgroud)
该文件的内容告诉Visual Studio在哪里可以找到NuGet包:
..\..\Projects\MyWebSite\packages\Microsoft.AspNet.Razor.3.1.2\lib\net45\System.Web.Razor.dll
Run Code Online (Sandbox Code Playgroud)
为了测试这一点,我从bin文件夹中删除了所有二进制文件,删除了packages文件夹,然后重新构建了项目.Visual Studio会还原包,并在构建时将所需的程序集复制到项目的bin文件夹中.
归档时间: |
|
查看次数: |
5623 次 |
最近记录: |