Web站点项目、项目参考和版本控制

3
我有一个ASP.NET Web Site项目,它的逻辑曾经在App_Code文件夹中。我将一些代码移到了Class Library项目中(以便进行单元测试),并添加了一个Project Reference。它编译和运行得很好。
问题在于,Web Site项目表示项目引用的唯一方式(据我所知)是通过/bin目录中编译后的dll的存在。我不想将这些生成的文件包含在版本控制(Subversion)中。将文件添加到SVN忽略列表中——就像我通常对待/bin dll一样——不是一个选择,因为我会失去项目引用。
那么,问题来了:除了将dll放在/bin目录中,是否有一种方法可以在Web Site项目中维护项目引用?
如果没有,我计划将类库移动到自己的解决方案中,并使用.refresh文件。由于这些项目总是一起进行,这不是我的首选。

3
您发现了更多不使用网站项目的原因。Web应用程序项目没有这些问题。 - John Saunders
是的,原因越来越多了。不幸的是,这个项目有点混乱。我已经尝试过几次转换,但放弃了构建它的想法。将代码拉入类库是实现转换的第一步。 - Jerph
你解决了这个问题吗?能否将其添加为答案?我有一个类似的问题。这是一个应用程序,我无法控制从网站转换为Web应用程序。希望从Subversion中排除bin文件夹。 - Becky
我认为.refresh文件是你需要走的路。这里有一个类似的线程被回答了https://dev59.com/tHVC5IYBdhLWcg3wfhGL - Subhash Dike
@Becky - 我使用SVN(带有Windows资源管理器的Tortoise插件)。为了排除“bin”文件夹,我右键单击它并从Tortoise上下文菜单中删除/忽略它。 - immutabl
2个回答

0
你可以尝试创建一个空的Visual Studio解决方案,然后添加网站项目和你创建的类库项目。这是一种折中的方法,你可以编译解决方案以检查是否一切正常,但实际上并不需要。因此,你保持了Web Site的轻松风格,同时又具备了关联项目的能力。
然后,你可以将类库项目保留在同一个代码库中,并继续从网站的bin目录中排除已编译的dll文件。如果你让类库将dll文件的副本放在代码库根目录下的“libs”文件夹中,那么你就可以从那里引用它到你的网站中。
你的文件夹结构将会像这样: - 你的项目 -- 网站 -- 你的类库 -- libs(第三方库,包括你的类库) -- 测试 -- 其他任何东西

0

我相信引用是在解决方案文件中维护的。

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

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

希望这能有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接