繁体   English   中英

我可以避免使用NuGet签入MVC3项目的bin文件夹吗?

[英]Can I avoid checking in the bin folder of MVC3 project with NuGet?

我创建了一个MVC3项目,并使用NuGet(NHibernate,AutoFac等)引入了一些库。似乎这些库已设置为将二进制文件安装到bin文件夹中,而不是引用根包文件夹。 当我拉入另一台机器上的源代码(源代码控制中尚没有bin文件夹)时,我遇到了很多损坏的引用。

问题:我做错什么了吗? 有没有一种方法可以进行设置,这样我就不必检入Binaries文件夹而不必诉诸GAC或手动管理对packages文件夹的引用?

我正在使用VS2010 sp1和NuGet 1.4。

更新

我发现了我的问题! 创建项目后,我已经移动了该项目,并通过NuGet提取了库。 这在我的第一台开发机上运行良好,因为我的bin文件夹中已经有dll了,但是在我的第二台开发机上却无法运行,因为.csproj文件中的<HintPath>不再正确指向packages文件夹。

要解决此问题,请在VS中卸载项目,对其进行编辑并修复引用。 如果NuGet检查了.csproj文件中的<HintPath>设置并对其进行自动更正,那就<HintPath>了。

NuGet工作项: http : //nuget.codeplex.com/workitem/1230

我对此的解决方案是将nuget.exe放入我在源代码管理中的solution文件夹中,并对每个项目使用pre-build事件:

"$(SolutionDir)NuGetCLI\nuget" install "$(ProjectDir)packages.config" -o "$(SolutionDir)Packages"

这将拉出并配置项目中使用的软件包。 好处是,我根本不必将二进制文件存储在源代码管理中。

难道我做错了什么?

实际上,当您安装包含程序集的NuGet程序包时,将在项目根目录下创建一个packages文件夹。 此文件夹包含所有已安装软件包的所有文件。 然后从该文件夹进行引用。 因此,请确保还要在版本控制中检查此文件夹及其内容。 该文件夹不会自动添加到Visual Studio项目中,因此我不知道您使用的是哪种VCS,但似乎它没有对该文件夹进行版本控制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM