100165382.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 98 行 · 第 1/2 页

HTM
98
字号
<p class="1" style="MARGIN-LEFT: 37.55pt; FTEL: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="FONT-FAMILY: 宋体">解决方案是构成某个软件包</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">应用程序</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">的所有项目集。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">为了说明这个区别,考虑一下在发布一个应用程序时,该程序可能包含多个程序集。例如,其中可能有一个用户界面,有某些定制控件和其他组件,它们都作为应用程序的库文件一起发布。不同的管理员甚至还有不同的用户界面。每个应用程序的不同部分都包含在单独的程序集中,因此,在</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">看来,它们都是独立的项目。可以同时编写这些项目,使它们彼此连接起来。在</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">中,可以把它们当作一个单元来编辑。</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">把所有的项目看作一个解决方案,把该解决方案当作是可以读入的单元,并允许用户在其上工作</span><span style="FONT-FAMILY: 宋体">。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">前面讨论了如何创建一个控制台项目。实际上,在前面的例子中,</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">创建的是一个解决方案,这个解决方案只包含一个项目。可以在</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">的一个窗口中查看它,该窗口称为</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">,它包含一个定义解决方案的树形结构,如图</span><span lang="EN-US">12-8</span><span style="FONT-FAMILY: 宋体">所示。</span></p>
<p align="center"><span lang="EN-US"><img height="174" src="12/image008.jpg" width="174" alt="" /></span></p>
<p style="FTEL: 8.15pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US">&nbsp; 12-8</span></p>
<p class="MsoNormal"><span style="COLOR: black; FONT-FAMILY: 宋体">这个屏幕图说明了项目包含源文件</span><span lang="EN-US" style="COLOR: black">Class1.cs</span><span style="COLOR: black; FONT-FAMILY: 宋体">和另一个</span><span lang="EN-US" style="COLOR: black">C#</span><span style="COLOR: black; FONT-FAMILY: 宋体">源文件</span><span lang="EN-US" style="COLOR: black">AssemblyInfo.cs</span><span style="COLOR: black; FONT-FAMILY: 宋体">,</span><span lang="EN-US" style="COLOR: black">AssemblyInfo.cs</span><span style="COLOR: black; FONT-FAMILY: 宋体">包含程序集的描述信息和指定的版本信息</span><span lang="EN-US" style="COLOR: black">(</span><span style="COLOR: black; FONT-FAMILY: 宋体">预了解该文件详见第</span><span lang="EN-US" style="COLOR: black">13</span><span style="COLOR: black; FONT-FAMILY: 宋体">章</span><span lang="EN-US" style="COLOR: black">)</span><span style="COLOR: black; FONT-FAMILY: 宋体">。</span><span lang="EN-US" style="COLOR: black">Solution Explorer</span><span style="COLOR: black; FONT-FAMILY: 宋体">也指定了项目通过命名空间引用的程序集。扩展</span><span lang="EN-US" style="COLOR: black">Solution Explorer</span><span style="COLOR: black; FONT-FAMILY: 宋体">中的</span><span lang="EN-US" style="COLOR: black">Reference</span><span style="COLOR: black; FONT-FAMILY: 宋体">文件夹,就可以看到它。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span style="FONT-FAMILY: 宋体">如果没有改变</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">的任何默认设置,</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">就在屏幕的右上角。如果看不到它,可以选择</span><span lang="EN-US">View</span><span style="FONT-FAMILY: 宋体">菜单中的</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span style="FONT-FAMILY: 宋体">解决方案用扩展名为</span><span lang="EN-US">.sln</span><span style="FONT-FAMILY: 宋体">的文件来表示,在本例中,就是</span><span lang="EN-US">BasicConsoleApp.sln</span><span style="FONT-FAMILY: 宋体">。项目则由项目主文件夹中的各个文件来表示。如果试图使用</span><span lang="EN-US">Notepad</span><span style="FONT-FAMILY: 宋体">编辑这些文件,就会发现它们大多数都是纯文本文件,为了与</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">和依赖于开放标准的</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">工具保持一致,它们大都是</span><span lang="EN-US">XML</span><span style="FONT-FAMILY: 宋体">格式。</span></p>
<p class="a3" style="MARGIN-TOP: 8.15pt; FTEL: 21.45pt"><span style="FONT-FAMILY: 黑体">注意:</span></p>
<p class="a1" style="FTEL: 21.45pt"><span lang="EN-US">C++</span><span style="FONT-FAMILY: 楷体_GB2312">开发人员应认识到,</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 楷体_GB2312">解决方案对应于旧的</span><span lang="EN-US">C++</span><span style="FONT-FAMILY: 楷体_GB2312">项目工作区</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 楷体_GB2312">存储在</span><span lang="EN-US">.dsw</span><span style="FONT-FAMILY: 楷体_GB2312">文件中</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 楷体_GB2312">,</span><span lang="EN-US">Visual Studio</span><span style="FONT-FAMILY: 楷体_GB2312">项目对应于旧的</span><span lang="EN-US">C++</span><span style="FONT-FAMILY: 楷体_GB2312">项目</span><span lang="EN-US">(.dsp</span><span style="FONT-FAMILY: 楷体_GB2312">文件</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 楷体_GB2312">。另一方面,</span><span lang="EN-US">VB</span><span style="FONT-FAMILY: 楷体_GB2312">开发人员应注意,解决方案对应于旧的</span><span lang="EN-US">VB</span><span style="FONT-FAMILY: 楷体_GB2312">项目组</span><span lang="EN-US">(.vbg</span><span style="FONT-FAMILY: 楷体_GB2312">文件</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 楷体_GB2312">,</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 楷体_GB2312">项目对应于旧的</span><span lang="EN-US">VB</span><span style="FONT-FAMILY: 楷体_GB2312">项目</span><span lang="EN-US">(.vbp</span><span style="FONT-FAMILY: 楷体_GB2312">文件</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 楷体_GB2312">。</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 楷体_GB2312">与旧</span><span lang="EN-US">VB IDE</span><span style="FONT-FAMILY: 楷体_GB2312">的区别是,</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 楷体_GB2312">总是自动创建一个解决方案。在</span><span lang="EN-US">Visual Studio 6</span><span style="FONT-FAMILY: 楷体_GB2312">中,</span><span lang="EN-US">VB</span><span style="FONT-FAMILY: 楷体_GB2312">开发人员最初会得到一个项目,如果要得到项目组,就必须在</span><span lang="EN-US">IDE</span><span style="FONT-FAMILY: 楷体_GB2312">中显式指定。</span></p>
<h4 style="FTEL: 21.45pt"><span lang="EN-US">1. </span><span style="FONT-FAMILY: 黑体">给解决方案添加另一个项目</span></h4>
<p class="MsoNormal" style="LINE-HEIGHT: 18pt"><span style="FONT-FAMILY: 宋体">下<span style="LETTER-SPACING: -0.2pt">面几节将说明</span></span><span lang="EN-US" style="LETTER-SPACING: -0.2pt">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.2pt">如何处理</span><span lang="EN-US" style="LETTER-SPACING: -0.2pt">Windows</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.2pt">应用程序和控制台应用程序。在这个过程中,将创建一个</span><span lang="EN-US" style="LETTER-SPACING: -0.2pt">Windows</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.2pt">项目</span><span lang="EN-US" style="LETTER-SPACING: -0.2pt">BasicForm</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.2pt">,并把它添加到当前的解决方案</span><span lang="EN-US" style="LETTER-SPACING: -0.2pt">BasicConsoleApp</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.2pt">中。</span></p>
<p class="a3" style="MARGIN-TOP: 8.15pt; FTEL: 21.45pt"><span style="FONT-FAMILY: 黑体">注意:</span></p>
<p class="a1" style="LINE-HEIGHT: 17pt; FTEL: 21.45pt"><span style="FONT-FAMILY: 楷体_GB2312">最终我们将得到一个包含</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 楷体_GB2312">应用程序和一个控制台应用程序的解决方案。这种情况并不常见</span><span lang="EN-US" style="LETTER-SPACING: -1pt">&shy;&mdash;&mdash; </span><span style="FONT-FAMILY: 楷体_GB2312">我们一般会在解决方案中包含一个应用程序和多个库,但这个解决方案可以演示更多的代码。如果用户编写的工具需要作为</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 楷体_GB2312">应用程序和命令行工具来运行,就可以创建这样的解决方案。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 18pt"><span style="FONT-FAMILY: 宋体">创建新项目可以使用两种方式。一是进入</span><span lang="EN-US">File</span><span style="FONT-FAMILY: 宋体">菜单,选择</span><span lang="EN-US">New | Project</span><span style="FONT-FAMILY: 宋体">选项</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">如前所述</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。二是在</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">中右击该解决方案名,从上下文菜单中选择</span><span lang="EN-US">Add | New Project</span><span style="FONT-FAMILY: 宋体">。这两种方式都会打开一个</span><span lang="EN-US">New Project</span><span style="FONT-FAMILY: 宋体">对话框,但这次在对话框的底部有两个单选按钮,如图</span><span lang="EN-US">12-9</span><span style="FONT-FAMILY: 宋体">所示,允许用户指定是为这个项目创建新的解决方案,还是把它添加到现有的解决方案中。</span></p>
<p align="center"><span lang="EN-US"><img height="264" src="12/image009.jpg" width="357" alt="" /></span></p>
<p style="FTEL: 8.15pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US">&nbsp; 12-9</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 18pt"><span style="FONT-FAMILY: 宋体">如果选中</span><span lang="EN-US">Add to Solution</span><span style="FONT-FAMILY: 宋体">,就会得到一个新项目,</span><span lang="EN-US">BasicConsoleApp</span><span style="FONT-FAMILY: 宋体">解决方案现在就应包含一个控制台应用程序和一个</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 宋体">应用程序。</span></p>
<p class="a3" style="MARGIN-TOP: 8.15pt; FTEL: 21.45pt"><span style="FONT-FAMILY: 黑体">注意:</span></p>
<p class="a1" style="LINE-HEIGHT: 17pt; FTEL: 21.45pt"><span style="FONT-FAMILY: 楷体_GB2312">为了保持</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 楷体_GB2312">的语言无关性,新项目不一定是</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 楷体_GB2312">项目,在同一个解决方案中,可以有</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 楷体_GB2312">项目、</span><span lang="EN-US">VB.NET</span><span style="FONT-FAMILY: 楷体_GB2312">项目或</span><span lang="EN-US">C++</span><span style="FONT-FAMILY: 楷体_GB2312">项目。但这里仍使用</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 楷体_GB2312">,因为这是一本介绍</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 楷体_GB2312">的书。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 18pt"><span style="FONT-FAMILY: 宋体">当然,</span><span lang="EN-US">BasicConsoleApp</span><span style="FONT-FAMILY: 宋体">对于这个解决方案来说,就不再是一个合适的名称了。右击该名称,从上下文菜单中选择</span><span lang="EN-US">Rename</span><span style="FONT-FAMILY: 宋体">,改变其名称。如果把它重新命名为</span><span lang="EN-US">DemoSolution</span><span style="FONT-FAMILY: 宋体">,</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">窗口就应如图</span><span lang="EN-US">12-10</span><span style="FONT-FAMILY: 宋体">所示。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">从这里可以看出,</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">会自动让新增的</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 宋体">项目引用那些对</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 宋体">窗体的功能来说非常重要的某些附加基类。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">如果查看一下</span><span lang="EN-US">Windows </span><span style="FONT-FAMILY: 宋体">资源管理器,就会发现解决方案的文件名已经改为</span><span lang="EN-US">DemoSolution.sln</span><span style="FONT-FAMILY: 宋体">。一般情况下,如果要重新命名文件,最好在</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">中进行,因为</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">会自动更新其他项目文件中对该文件的引用。如果使用</span><span lang="EN-US">Windows</span><span style="FONT-FAMILY: 宋体">资源管理器重新命名文件,就会中断解决方案,因为</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">不能定位它需要读取的所有文件,用户必须手工编辑项目和解决方案文件,以更新文件引用。</span></p>
<h4 style="FTEL: 21.45pt"><span lang="EN-US">2. </span><span style="FONT-FAMILY: 黑体">设置启动项目</span></h4>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">如果在解决方案中有多个项目,就必须确保该解决方案在某一刻只运行一个项目。在编译解决方案时,将编译其中的所有项目。但在按下</span><span lang="EN-US">F5</span><span style="FONT-FAMILY: 宋体">键或选择</span><span lang="EN-US">Start</span><span style="FONT-FAMILY: 宋体">时,必须告诉</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">首先运行哪个项目。如果有一个可执行文件,它调用了几个库,显然应先运行这个可执行文件。对于本例,项目中有两个独立的可执行文件,就必须逐个调试它们。</span></p>
<p align="center"><span lang="EN-US"><img height="216" src="12/image010.jpg" width="128" alt="" /></span></p>
<p style="FTEL: .0001pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US">&nbsp; 12-10</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">可以告诉</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">应运行哪个项目,方法是在</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">中右击该项目,在上下文菜单中选择</span><span lang="EN-US">Set as Startup Project</span><span style="FONT-FAMILY: 宋体">。这就告诉</span><span lang="EN-US">Visual Studio .NET</span><span style="FONT-FAMILY: 宋体">哪个项目是当前的启动项目,因为它在</span><span lang="EN-US">Solution Explorer</span><span style="FONT-FAMILY: 宋体">中是黑体显示,在上面的屏幕图</span><span lang="EN-US">12-10</span><span style="FONT-FAMILY: 宋体">上,就是</span><span lang="EN-US">BasicConsoleApp</span><span style="FONT-FAMILY: 宋体">。</span></p></div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="100165381.htm">上一页</a>&nbsp;&nbsp;&nbsp;<a href="index.html">首页</a>&nbsp;&nbsp;&nbsp;<a href="100165383.htm">下一页</a>
                </div>
              
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165382.htm'><font color='red'>12.1.2  解决方案和项目</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100165379.htm'>11.2  小结</a></div><div style='float:right;width:49%'>·<a href='100165380.htm'>12.1  使用Visual Studio .NET 2003</a></div><div style='float:left;width:49%'>·<a href='100165381.htm'>12.1.1  创建项目</a></div><div style='float:right;width:49%'>·<a href='100165383.htm'>12.1.3  Windows应用程序代码</a></div><div style='float:left;width:49%'>·<a href='100165384.htm'>12.1.4  读取Visual Studio 6项目</a></div><div style='float:right;width:49%'>·<a href='100165385.htm'>12.1.5  项目的浏览和编码</a></div></div>
                    </div>
                </div>
                </div></div>
   
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?