我在工作中遇到的问题是,每次从SVN获得新项目时,我都必须重新添加引用。我试图了解团队需要遵循的流程来阻止这种情况发生。
目标是团队中的任何人都可以获得最新的代码并成功构建。但是,我们似乎总是缺少参考文献的问题。
作为一般规则,我们有一个" libs"项目中的文件夹,并从内部引用我们需要的任何内容。我不确定这是否是最佳方法?
我刚刚通过SVN获取最新版本的网站进行了测试。这个特定的网站看起来必须设置为网站而不是网络项目,因为没有vbproj文件。我丢失了一些参考文献。我进入了网站的属性页面来检查参考文献的位置。我认为这些路径可能是某些人的机器特有的,但参考文献似乎甚至没有被添加。所以我添加了我需要的引用(它们位于" libs"文件夹中)。然后一切都成功构建但我没有标记要检查,所以当我添加引用时实际改变了什么文件?
我认为问题可能是网站项目与网站的结合,以及visual studio如何区别对待它们以及我们如何使用" libs"夹。想法?
答案 0 :(得分:1)
这里有两点
在多项目解决方案中保留参考的位置
永远不会让您失望的一种方法是拥有一个bin
文件夹(又名libs
- 我真的不知道为什么人们会将其称为bin
以外的其他内容...所以......在与解决方案相同的位置放置一个bin文件夹,而项目将在各自的子文件夹中。
--Solution Folder
-- .sln
-- bin
-- Project1 Folder
-- Project2 Folder
现在,在您的bin中,您可以保留所有.dll
个文件,包括您构建的文件和第三方文件。您的项目将从此bin
引用,构建输出将进入此bin。此bin应该是版本控制的一部分。建议不要将您的 DLL签入此bin,但要办理签入第三方DLL。另请注意,参考解决方案""将使用相对路径创建引用 - 这很重要。
如何处理网站项目中的引用(与网站应用程序对比)
在您的网站中没有引用的版本控制中,这并不罕见。这是你需要做的。对于Web站点项目引用的每个DLL,您需要在DllName.dll.Refresh
下创建WebsiteProject-Bin
文件,在该文件中您将设置该dll的相对路径。应该签入.refresh
个文件。一旦您构建了库,只有这样您才能构建您的网站。它将拉出运行它所需的所有DLL。通过此设置,您现在只需要创建一个虚拟目录并将其指向您的WebsiteProject文件夹 - 您应该有一个正在运行的网站。
第三点
的NuGet
如果您的项目使用nuget
个软件包,请在解决方案文件夹下创建packages
文件夹,并指向项目中的所有nuget.config
。通过这种方式,您将拥有一个中央nuget
存储库,这将使您的生活变得轻松。
如果您遵循这些准则,则在版本控制Get Latest
之后构建和部署时不应该遇到任何问题。只需确保所有现有引用都是相对的。