2010-05-11 196 views
3

我有一个ASP.NET网站项目,它曾经在App_Code文件夹中拥有它的逻辑。我将一些代码拉入了一个类库项目(以允许单元测试)并添加了一个Project Reference。它编译和运行良好。网站项目,项目引用和版本控制

问题是,网站项目代表项目引用(据我所知)的唯一方法是通过在/ bin目录中编译的dll的存在。我不想将这些生成的文件包含在版本控制(Subversion)中。将文件添加到SVN忽略列表 - 正如我通常对/ bin dll所做的 - 不是一种选择,因为我失去了项目引用。

因此,的问题:有没有办法在Web站点项目中维护项目引用,而不是将dll放在/ bin目录中?

如果不是,我打算将类库移到它自己的解决方案中并使用.refresh文件。由于项目总是会一起进行,这不是我的偏好。

+3

你找到更多的理由不使用网站项目。 Web应用程序项目没有这些问题。 – 2010-05-11 16:48:40

+0

是的,原因是堆积如山。不幸的是,这个项目有点混乱。我试图转换几次,放弃建立它。将代码拉入类库是实现转换的第一步。 – Jerph 2010-05-11 16:53:10

+0

您是否找到解决此问题的解决方案?你可以添加它作为答案?我有一个类似的问题。我无法控制从网站转换为网络应用程序的应用程序。想从Subversion中排除bin。 – Becky 2011-06-17 22:55:53

回答

0

您可以尝试创建一个空的Visual Studio解决方案,然后添加网站项目以及您创建的类库的新项目。这是一个中途的房子,你可以可以有解决方案编译来检查一切正常,但你并不需要。所以你保持网站的轻松风格,但有能力关联项目。

然后,您可以将类库项目保留在同一个存储库中,并继续从网站的bin中排除已编译的dll。如果你让你的类库把dll的一个副本放在回购站根目录下的'libs'文件夹中,那么你可以从那里引用它到你的网站。然后

你的文件夹结构会是这样的 - YourProject - 网站 - 你的类库 - 库(第三方库,包括您的类库) - 测试 - 还有什么

0

我相信这些参考资料会保存在解决方案文件中。

对于网站有在解决方案文件中的部分如下:

Project("{GUID}") = "WebsiteName", "WebsiteName", "GUID" 
    ProjectSection(WebsiteProperties) = preProject 
     .... removed for brevity ... 
     ProjectReferences = "{GUID OF REFERENCED PROJECTS}|ProjectName.dll" 
     .... removed for brevity ... 
    EndProjectSection 
EndProject 

希望这有助于