打开没有解决方案的项目visual,studio
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
打开没有解决方案的项目
visual,studio
篇一:在解决方案中的一个或多个项目由于以下原因未能加载的解决方法
用Visual XX或XX
在打开从网上下载的解决方案或从其他地方考来的解决方案时,往往
会碰到一个这样的错误,提示说:
“在解决方案中的一个或多个项目由于以下原因未能加载
项目文件或网站已移动或已重命名,或者不在您的计算机上。
”,如下图:
经笔者研究,我们可以通过以下步骤来解决该问题:首先,在相应的sln类型文件上点击右键,选择用记事本打开,如下图:
之后再打开的记事本中,我们可以看到一串地址,如下图:
这个地址含义既是该解决方案原先所在的地址,如果源地址跟现在其在你的电脑中的地址不同,则会导致如上所说的错误,我们可以改一下这个地址,也可以按照这个地址,创建一些文件夹,把解决方案放到这个文件夹中,之后问题
就解决啦!
篇二:visual studio 新建网站与新建项目的区别
在使用Visual Studio进行Web开发时,如果只是一个小型网站,那么点击菜单“文件|新建网站”就可以轻松完成任务,如下图:
图1:新建网站
使用这种办法开发Web时,可以使用不分层(一层)、二层或者三层架构的方式。
不分层(一层):将数据库放在App_Data文件夹内,默认的SQL Server数据库名称为,如果是其它类型的数据库,也放在这个文件夹内;直接使用.aspx进行开发,数据的访问或者显示都使用.aspx及完成(使用C#)
二层:可以考虑使用存储过程或者DAL,DAL建议使用的办法简便一些,将DAL进行数据CRUD生成的.cs文件放在App_Code系统文件夹内,获取的数据通过.aspx页面完成展示,这样就有了UI层(.aspx文件)及DAL层(App_Code 内的.cs文件)
三层:这已经是标准的中大型网站开发架构了,UI、BLL及DAL共存,如果仍然使用这种新建网站的方式完成,则可以这样完成:BLL及DAL层均放在App_Code这个系统文件夹内,只是在里面手工建议两个文件夹,一个是BLL,一
个是DAL,BLL存放业务层的代码,DAL存放数据访问层的代码;
如果使用三层架构开发网站,还有一种方法利用了Visual Studio解决方案的概念,可以使创建的网站更容易升级与维护,而且可以整合其它资源。
在Visual Studio中,解决方案是项目的集合,解决方案由一个或者多个项目组成,点击菜单“文件|新建项目”,在打开的“新建项目”窗口右边窗格中,就是C#所提供的项目模板,如下图(图2)就是新建一个类库项目时,自动生成了一个解决方案(在“解决方案”下拉框中,默认是“创建新解决方案”)
图2 新建项目时,默认自动创建新解决方案
如果在图2中点击确定,到资源管理器中可以看到有一个F:\VSXX
documents\ClassLibrary1的文件夹被创建,其内有一个文件,这个就是解决方案文件,实际是一个小的配置文件,用来管理该解决方案下的所有项目,在
F:\VSXX documents\ClassLibrary1文件夹内还有一个同名的文件夹ClassLibrary1,里边有一个文件,这个是类库项目文件(csharp project)。
当然这只是解决方案中的第一个项目文件,以后还可以通过“文件|添加”的方式加
入更多的项目文件。
可以看出,在图2中新建项目时,默认自动创建的新解决方案与第一个项目名称相同,这种解决方案与其中项目同名的情况,很容易对自己或者团队成员造成困惑,因为毕竟一个是总体的解决方案,一个只是解决方案中的一个项目。
在实际应用中,往往在新建第一个项目(同时也创建了解决方案)时,使用手工办法指定项目名称与解决方案名称,如下图(图
3):
图3:手工指定项目名称及解决方案名称
如图3,将类库名称指定为MyLibrary,将创建的解决方案名称指定为MySolution,按确定按钮后,会生成一个F:\VSXX documents\MySolution文件夹,内有一个
解决方案文件,F:\VSXX documents\MySolution文件夹内有一个
MyLibrary文件夹,该文件夹内有一个的项目文件,这样,解决方案文件名与其内管理的项目名不同,便于区别。
当然,也可以首先生成一个空的解决方案,里面没有任何的的项目,今后需要时,打开这个解决方案,再通过菜单“文件|添加”,可以将现有的网站或项目添加到当前解决方案内,也可以新建网站及项目,加入到当前解决方案。
具
体办法是:菜单“文件|新建项目”,在“新建项目”窗口的左边窗格菜单中,找到“其他项目类型|Visual Studio解决方案”,选择右窗格的“空白解决方案”,即可,如图4所示。
图4:创建空白解决方案
使用解决方案的办法,可以创建比较大的网站应用。
比如创建一个独立于网站目录的通用类库,为以后网站的扩展及代码重用打下良好基础。
同时,使用解决方案,也有利于团队合作开发网站。
WebApplication编程模型的优点:
●网站编译速度快,使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。
●生成的程序集
WebSite:生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集 WebApplication:可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息
●可以将网站拆分成多个项目以方便管理
●可以从项目中和源代码管理中排除一个文件
●方便的支持VSTS的Team Build方便每日构建
●更强大的代码检查功能,并且检查策略受源代码控
制
●可以对编译前后进行自己规定的处理
●对App_GlobalResources 的Resource强类支持(网上说的,还没有了解过)
●直接升级使用VSXX构建的大型系统
WebSite编程模型的优点:
●动态编译该页面,马上可以看到效果,不用编译整个站点(主要优势)
●同上,可以使错误的部分和使用的部分不相干扰(可以要求只有编译通过才能签入)
●可以每个页面生成一个程序集(一般不会采用这种方式)
篇三:用VSXX建立空白解决方案
用VSXX建立空白解决方案
三层结构,会有多个项目。
为了让各项目之间的关系反映在目录结构上所以要建立一个解决方案。
1.建立解决方案:
文件->新建项目->其它项目类型->Visual Studio 解决方案->空白解决方案。
2.在解决方案里添加第一个项目
建立空白解决方案后,在vsXX右边的解决方案资源管
理器中,可以看到刚建立的解决方案,单击选中它,然后右键选择“添加”->新建项目->Visual C#- > Web应用程序,把名称命为:Web,点击确定后就在解决方案里建立了一个Web项目。
3.在解决方案里添加第二个项目
在解决方案里加入第一个项目后,再加入第二个项目,第二个项目和添加与第一个项目的添加有一点差别,添加第二个项目的步骤是:文件->新建项目->Visual C# ->类库。
选择“类库”以后,把名称命名为:BLL,在最下面的“解决方案”里选择“添入解决方案”,意思就是把新建的这个BLL项目,添入到建立的KaiBo解决方案里。
刚才建立的两个项目就在解决方案里很好的组织起来了。
4.在解决方案里添加其它的项目
添加两个项目后,为解决方案添加更多的项目就只需选中解决方案,右键“添加”->新建项目->Visual C#->类库。
再自已命名项目名称就可以了。
1、WEB=表示层
2、BLL=业务逻辑层
3、IDAL=数据访问层接口定义
4、Model=业务实体
5、DALFactory=数据层的抽象工厂(创建反射)
6、SQLServerDAL=SQLServer数据访问层 / OracleDAL =Oracle数据访问层
7、DBUtility 数据库访问组件基础类多了一个WebControls项目,那是我写的一些自定义控件。
如果需要,还可以往解决方案里加入更多的项目。
到此为止解决方案就建立完成了。
但是各项目之间还是各自独立的,要想相互调用就要建立项目间的引用关系。
在vsXX里面把解决方案中的各个项目都建立好之后,就要实现各项目之关的引用了.在前面,我们建立了7个项目.它们分别是:
WEB:表示层
BLL:业务逻辑层
IDAL:数据访问层接口定义
Model:业务实体
DALFactory:数据层的抽象工厂(创建反射)
SQLServerDAL:SQLServer数据访问层
DBUtility :数据库访问组件基础类
各项目之间的引用关系可用下图表示:
Web 引用 BLL,SQLServerDAL
BLL 引用 IDAL,Model,DALFactory(使用DALFactory 创建实例)
DAL 引用 Model
Model 无引用
DALFactory 引用IDAL,通过读取里设置的程序集,加载类的实例,返回给BLL使用
SQLServerDAL 引用 Model和IDAL,DBUtility.被DALFactory加载的程序集,实现接口里的方法
在解决方案里建立项目间的引用步骤为:选中需要添加引用的项目→右键选择"添加引用"→"项目",然后选中要引用的项目的名称.点确定完成项目的引用. 把各项目之间的引用关系建立好以后,一个完整的解决方案就算是拾建好基石了.接下来,就是写代码实现各项目的作用了.
另外参考:在中,如何将一个项目的多个模块编译成不同的DLL?
问:
概况:
有一个基于的系统,系统由一个基础框架和多个业务模块组成,各业务模块之间的耦合性不强——但每个业务模块对基础框架高度依赖。
需求:
希望能够将基础框架和各业务模块单独编译成不同的DLL,部署时可灵活的根据客户需求增删业务模块。
___________________________________________________ ___________________________________________ 答1:
建立一个新的解决方案,在解决方案上点击右键
在其中建立新建项目
每个新的项目就是你的业务模块,他们会编译成单独的DLL
在要引用不同的项目的dll时,可以使用点击引用->项目->选择所要引用的项目
___________________________________________________ ___________________________________________ 答2:
在一个解决方案下面建立多个项目,每个项目对应你的模块,每个项目输出类型
都是类库
___________________________________________________ ___________________________________________ 答3:
在新建的项目为:其它项目--〉企业级模版项目--〉
c#或vb分布式应用程序。
项目自动创建四层结构的项目。
之后自己在每一层创建每个dll项目。
如果a模块使用b模块,就在a模块的项目上添加引用,选择项目-〉b项目。
以上就是简单的多模块引用。
___________________________________________________
___________________________________________
答4:
将基础框架及各相对独立的业务模块分到不同的项目里。
如果有多个层次,可以使用企业级模板项目来分级,没有多个层次的,把所有的项目都直接放在解决方案下好了。
___________________________________________________
___________________________________________
答5:
在添加新项目时,添加类库项目,该项目编译生成的就是你要的DLL文件。
在其他项目中引用生成的DDL就可以了。
___________________________________________________ ___________________________________________ 答6:
不知道你有没有逻辑程,
你可以单独编译cs文件,
然后共享在每个模块.
___________________________________________________ ___________________________________________ 答7:
不在中倒是可以.
___________________________________________________ ___________________________________________ 答8:
首先感谢大家的热情答复!祝大家新年快乐!
如上面各位的回答,将模块分布到项目里面,那我需要在各个业务模块中共享基础框架中的状态信息,如获取系统的运行状态(保存在application中)、获取用户的登录信息(保存在用户session中)等,采取这种“引用项目生
成的DLL”的方式,能够实现吗?
首先申明:我是.net新手。
就我的理解(还没来得及试验):每个项目都是一个web应用,如在中新建一个c#的项目,就会有自己的 , , 等文件,这样的话,要在各个项目与同一个基础框架(也是一个的项目)之间共享应用的运行状态,应该是行不通的!
不知道我的理解对不对?
___________________________________________________ ___________________________________________ 答9:
ding
___________________________________________________ ___________________________________________ 答10:
当然能满足你的要求.
___________________________________________________ ___________________________________________
答11:
模块编译后基本上就可以脱离项目了
___________________________________________________ ___________________________________________ 答12:
to Hanks(Hank)
你的理解是对的,
Session 不能在项目间传递的,建项目时,每个项目都会生成自己的, , 但你可以把你的业务模块编成不同的项目后,生成相应的.dll, 然后再在你的项目中引用这些.dll,就可以引用相应的项目了:)
Happy Spring Festival to every one!
___________________________________________________ ___________________________________________ 答13:
建立的项目为“类库”用来放你的逻辑层,再在WEB 项目中引用,但项目之间不能互相引用,那就用某个项目去直接引用另外个项目生成后的DLL
___________________________________________________ ___________________________________________ 答14:
举个例子,比如:
某系统A由5个基础模块和10个业务模块组成,
其中假设有一个业务模块Xxx,该模块物理上由两个dll和一些页面(包括aspx, html, js等)组成。
两个dll 分别是:
一个封装业务逻辑的dll,假设为
一个用于封装aspx页面behind code的dll,假设为这个模块需要与基础模块通讯,访问基础模块中的系统状态。
象这样怎么做?
___________________________________________________ ___________________________________________ 答15:
UP
___________________________________________________ ___________________________________________
答16:
TO
就我的理解(还没来得及试验):每个项目都是一个web应用,如在中新建一个c#的项目,就会有自己的 , , 等文件,这样的话,要在各个项目与同一个基础框架(也是一个的项目)之间共享应用的运行状态,应该是行不通的!
〉〉可行的办法::。