天柱山游学之—玛Lisa的情郞

初稿地址:【转】Vs解决方案的目录结构安装和管理 作者:大明

日记星球原创第125篇

 

自身是日记星球140号星宝宝,正在插手日记星球21天衍生和变化之旅,第125天。让每一天记日志的好习惯融入到血液里,且行且欢腾!

以下内容为“原创”+“转载”

2017年7月14日 星期五 晴

首先,解决方案和项目文件夹包蕴关系(c++项目):

图片 1

VS解决方案和一一门类文件夹以及缓解方案和一一项目相应的安排文件包蕴关系,倘若新建一个档次ssyy,解决方案起名fangan,注意解决方案包括项目,此时变化的最外层目录为fangan代表全体解决方案的内容都在这些文件夹内。在那几个fangan文件夹内涵盖有fangan.sln的化解方案安顿文件和一个ssyy文件夹,ssyy文件夹代表整个ssyy项目标有着情节都在这些文件夹内,那几个文件夹内富含ssyy.vcproj的体系部署文件和.h头文件以及.cpp源文件。假使在fangan解决方案下再建立一个新品类名为ssyy2,则会在fangan文件夹下生成一个ssyy2文件夹存放ssyy2项目标所有内容。

【接吻的玛Lisa和大白】

由地点叙述可以统计出,管理器(解决方案或项目)都会相应一个总的文件夹,这一个管理器文件夹下存放本管理器的安排文件以及子管理器。比如,解决方案是个管理器,它的文书夹下含有.sln配置文件以及子管理器ssyy项目和子管理器ssyy2项目。

到达基地的当日,最惹眼的是一群狗,黄的一拨,白的一拨。

除此以外,默许意况下,项目性质设置的目录源点为品种配置文件所在地方,实际上就是连串头文件和源文件所在地点。

梧桐树下,一只黄狗深情的吻着一只白狗,很久很久,不精通它俩是怎么着关联,我被那种幽默的场馆震撼了,顺手拍下精粹的一须臾。

填补:vs中树立默许的C#体系和建立默许的C++项目转移的目录结构是差别等的。如若是C#品种,则解决方案总文件夹下就只含有解决方案布署文件sln和一个品类总文件夹(共四个东东),而项目总文件夹下包罗c#源文件、项目安插文件proj、一个Properties属性文件夹、一个obj文件夹和一个bin文件夹,其中obj和bin文件夹下都带有debug和release四个公文夹。obj文件夹下存放中间编译结果(扩大名更加项目项目而各异),而bin文件夹下存放最毕生成的结果(扩充名类同为exe或dll)。

第二天暴发的场合超出我的意料,大白偷吃了大黄碗里的粮食,大黄引导俩外孙子发生了强烈的口诛笔伐,疯狂的嘶咬声把我吓一跳。

而假使是C++项目,则解决方案总文件夹下就只含有解决方案安排文件sln和一个门类总文件夹和一个Debug文件夹以及一个Release文件夹(共七个东东,其中Debug和Release文件夹中存放最平生成的结果exe或dll,要留心即使不选拔Release生成,则不存在Release文件夹),而项目总文件夹下包涵C++源文件头文件、项目配置文件和一个Debug文件夹以及一个Release文件夹(一定要留意,此处的Debug和Release文件夹仅仅存放中间编译结果obj,不存放exe和dll之类的事物。借使不行使Release编译,则从未对号入座的Release文件夹)。

敏捷,大黄一家占了上疯。大白用它特有的叫声引来同伴,那种架式就是你死我活,撕斗的结果是大黄的耳根被咬破,鲜血淋淋,瞅着就心疼。

不言而喻,c#系列默许生成的文件目录结构更客观,且输出的exe位于总项目文件夹内,而c++项目默许exe位于解决方案总文件夹下。其余c#更合理在,C#应用Bin目录,在Bin目录下富含debug和release七个目录,而C++不利用Bin目录,直接运用debug和releae四个目录。

图片 2

 

也不清楚什么人输什么人赢,那种打斗群抠每一天都在上演。

其次,常用项目性质和系统布置变量关系:

接下去的一天,大黄左眼受伤了,鲜血顺着眼角往下流,看着都疼,我准备用臭氧精油给它滴几滴消消炎,姜敏说狗狗有本人修复的能力,况且精油滴上去会很疼,它会受持续,我们就不得不瞧着它和谐好了,第二天果然好了。

         即使大家建立一个默许的vc项目ssyy,他的默许“常规“栏目中,“输出目录”为$(SolutionDir)$(ConfigurationName),所以调试时会在缓解方案文件夹下建立一个debug(ConfigurationName的值为debug)文件夹,并在此文件夹下生成 ssyy.lik链接器 和ssyy.exe文件 。默认“中间目录”为$(ConfigurationName),所以会在ssyy项目文件夹下(即ssyy.vcproj的品种布局文件所在地点)建立一个debug文件夹,并在该文件夹下生成ssyy.obj二进制文件。默许“链接器”栏目下的“常规”选项下的“输出文件”选项为$(OutDir)$(ProjectName).exe,其中$(OutDir)就曾经在“常规”栏目标“输出目录”选项赋值了。【所以$(OutDir)的值是在“输出目录”属性中定义的】。

图片 3

        其余,经过实际测试,发现“输出目录”属性只可以起到对$(OutDir)系统变量赋值的效劳,和“改变生成的.exe文件存放地点”没任何关系。也就是说,假如“输出目录”中安装的$(OutDir)值在C盘,而“输出文件”中装置输出文件的义务为D盘,最生平成的exe文件会在D盘,“输出文件”属性才控制输出exe文件的地方。

后天大黄又受伤了,左眼下方有一道横着的流着血的疤痕,不过比之前的伤轻多了。

        而$(TargetDir)的值是在生成exe文件后活动赋予值为exe文件所在地点。所以可以说,“输出文件”最终决定exe文件所在的地方,也最后决定了$(TargetDir)的值,$(TargetPath)和$(TargetDir)的一举一动是近似的,此不赘述。

每一次观看它受伤,我们就狠狠的批评它:不像个当妈的,天天带着孙子们入手,也不学好。不了解它是还是不是听得懂我们的话,但大家心痛它的那份感觉它必将能感知到。

        上边两段说了如此多,小结就是,默许情状下“输出目录”和“输出文件”三个特性对应的目录是一致的,那样用着方便(当然,输出文件的值在输出目录的值的底蕴上还富含有exe文件名)。即便几个不等同,则中间生成的链接器用的如xx.ilk和xx.pdb文件等在出口目录,而结尾生成的xx.exe文件在“输出文件”属性设置的目录中。

辰宝为了给它报仇,平时用棒子去撩那拨白狗,白狗们只要一看到辰宝就疯癫的吼叫,要么就冲过来,然后大黄就上前去支援。

除此以外,上边两段话能够统计出,当调试程序时,系统变量$(OutDir)的值是开头确定的,而$(TargetDir)和$(TargetPath)的值是在exe文件生成后才规定的。也就是说系统变量$(OutDir)的值由VS项目标“输出目录”属性决定,而$(TargetDir)和$(TargetPath)的值由VS项目标“输出文件”属性决定。即设置了VS的“输出目录”属性就一定于设置了$(OutDir)的值,“输出目录”是界面上的唤起用于吸纳用户输入的布置音讯,然后把这几个实际的安插信息存入系统内容的变量$(OutDir)中。

大黄有个事与愿违的名字叫玛丽(玛丽(Mary))莎,是来基地游学的孩子们共同起的,有的孩子给它起名玛丽,有的孩子给它起名莎莎,为了满意孩子们一道的心愿,烽火先生就叫它玛丽(玛丽)莎。

其他常用的特性还有,“调试”栏目中的“工作目录”项,那一个特性默许情状下是空的,但象征工作目录是工程目录,也就是工程陈设文件ssyy.vcproj所在目录。工作目录表示进行某项操作的目的目录,会趁着OpenFileDialog、SaveFileDialog等对象所规定的目录而改变。“行事目录”属性效用是程序运行后唯一识其余默认目录,即工作后只认识这个目录,工作目录这些名字描述的就很形象,(能够将所依靠的lib和dll库文件所在目录设为工作目录,但一般是把lib放在解决方案下的Lib目录中,把dll放在解决方案下的Bin目录中),例如程序运行进程中变化一个txt文本文件,若是在创设文件进度中未指定绝对路径,只指定创设文件的公文名,那么这么些文件文件默许就会建立在办事目录中,当然读取一些配置文件也在干活目录中搜索,但要说喜宝(Hipp)(阿博特)下,生成的exe文件跟办事目录没任何关系,也不会放在工作目录中。总的来说,工作目录就是程序运行进程中默许读取的目录。对于dll,纵然是程序运行前就进去内存有点像静态链接那样,此时dll就足以放入exe所在的执行目录,借使dll是运作中动态加载的形似位于工作目录,比如插件就置身工作目录。即工作目录就是运行时期唯一能辨识的默认目录,工作目录在代码中用GetCurrentDirectory之类的函数获取,具体代码间最上面的附1。工作目录与实施目录可以分裂,例如一个人住在京城,但他的工作地方不必然在巴黎,可能在明尼阿波利斯。

图片 4

对工作目录的互补:vs中行事目录的装置是给调试用的,也即你启动调试后,启动一个新过程,自动把那些新进程的劳作目录设置为vs项目性质中的工作目录,然后新历程启动相应的exe程序。可是假使不使用vs的调剂启动exe,而是径直双击exe文件启动一个新进度时,会自行把这些新历程的行事目录设置为exe文件所在的目录,这是和vs启动调试不一样的地点。所以一旦宣布的时候不把工作目录内的东西拷到exe所在的目录内,就会运行出错,因为那时工作目录不再是vs中装置的了,而是exe文件所在的目录。最终,说一下,vs中默许的vc++工程的办事目录项目标值是空的,代表默许是vs工程所在目录即.vcproj文件所在目录,c#工程默许没测试,臆度和vc的一模一样。】

图片 5

【同样在调试选项下的和劳作目录选项同一流的选项“命令”选项是安装,使用调试时,从哪里启动exe文件,因为一般生成的exe放在bin目录下的debug或release目录下,所以命令选项一般为“Bin$(Configuration)$(ProjectName).exe”,默许也是其一值,当然可以更改,但此刻意味着调试景况下启动的exe为“命令”选项中安装的exe文件,而不是默许的bin目录下的debug或release下的exe文件了。最终说一下,下边所说的“调试”是指vs下启动exe,包含debug格局和release格局,不要把调试就精通为唯有debug情势。】

每日跟它打架的大白是它的男朋友,三个孙子也是跟大白生的。玛Lisa本身是崇高的花色,有王者风采,是以此地点的头,只要它一叫,所有的狗都接着叫起来。可它跟大白生的男女却是严重的退行,长相普通,胆子越发小,每一次打架不敢上前,只好跟在姨妈身后,那种眼神极度的尚未安全感,因为它们出生后做了两年的流浪狗。

 

图片 6

 “调试”栏目中的“命令(Command)”属性项,【那几个特性表示调试器要启动的exe文件的真名】,包涵路径名,默许为$(TargetPath),而TargetPath就象征目标输出文件的百分之百径名,所以一般意况下它意味着的值就相当于“输出文件”属性代表的值。当然你也可以人工的改变“命令”属性的值,比如更改为c:aa.exe,而“输出文件”的值为c:bb.exe,此时即使出口文件所在目录没有aa.exe的话(因链接器只生成bb.exe而向来不会生成aa.exe),调试器就不可能开行aa.exe,提醒找不到aa.exe。当然如若目录中早已有aa.exe文件(可以强制赋值一个bb.exe文件的副本并取名为aa.exe),此时调试器就足以健康调试通过。

【大白的幼子小黄】

“链接器”栏目下的“输入”选项下的“附加看重项”项。此项是设置程序链接时选拔的静态库。相当于链接已经编译好了的“代码”。因此我们得以省略的觉得这个库就相当于大家团结写的.cpp文件,只可是这个库是编译好了的.cpp而已(那里只要求库名称即可,搜索路径在其余地点设置)。

自身问烽火老师它们既是有那种情份,为何还连连打架?

“附加器重性的设置”等同于在代码中写“#pragma comment(lib, “库名称.lib”)
”语句,即便利用绝对路径则如下:

战火先生说就如中国男人娶了东瀛妇人,两国作战的时候,中国先生在战场上打死了日本巾帼,在清理战场的时候,中国女婿抱着东瀛农妇的遗体放声痛哭,尽管立场差距,但情份依旧在。

#pragma
comment(lib,”..\debug\TestLib.lib”);其中的反斜杠要用双反斜杠,因为它是先后解释的双引号包涵的字符串,需求转义一下,要分别include,#include
“..TestVideoApplication.h”中并不是由程序解释的字符串,所以不用转义。

那也是玛丽莎(Lisa)和大白的立足点,双方在勇斗地盘的进程中是敌我双方,但在生活中照旧卿卿我自家的好伴侣。

 

我们每趟的旅游,玛丽莎(Lisa)和外甥们都会在面前引路,每回躺到吊床上,玛丽(玛丽(Mary))莎都会趴在吊床下方当保镖。

上面举一个多类型例子(vc++例子):(转自:http://blog.163.com/zhang_bo1983/blog/static/16992223020123753334981/

图片 7

解决方案与品类:
从VC6之后VC种类就应用解决方案(Solution)来取代原先的行事空间,用于社团和管理七个有关的连串(Project)。
小说首先演示一个虚构的化解方案和大家盼望获取的目录结构,然后选取VC2008的项目安装功用来一步一步达到大家的急需。
虚拟解决方案:
该虚拟解决方案名为GMA,包括一个动态链接库项目ChocolateMilk和一个应用程序项目PureMilk,需求动用一个第三方库log4cxx(Apache
log4j的C++移植版本,用于日志输出)。【注意那些事例中ChocolateMilk项目只生成一个dll,PureMilk只生成一个exe】
log4cxx是以动态库的办法编译的,所以大家要求它的3样东西,分别是头文件,导入库(log4cxx.lib,
log4cxxd.lib)和动态链接库(log4cxx.dll)。
若果大家期待的目录结构如下图:

每天中午,不论我们多早醒来,玛丽(Mary)莎的一家早已站着或趴在房前等待着新的一天,玛丽(玛丽(Mary))莎已经成了儿女们亲密的同伙,待大家要返程的那一天,不驾驭孩子们会不会流泪呢?

图片 8

本身想一定会有种种不舍,包含自家要好,此时的本人早就有了不舍之心,因为玛丽(玛丽)莎已经走进了自己的内心。

1. GMA是解决方案目录
2. PureMilk和ChocolateMilk是体系目录
3. Lib目录用于存放导入库或者静态库(包涵第三方库和协调的种类)
4. Include用于存放第三方库的头文件(可以见到第三方库所有情节分布在Lib、Include和Bin中)
5.
Bin目录存放所有动态链接库和执行档,包罗团结的面世和第三方库,区分Release和Debug七个版本。别的,程序运行进程中须求外部的数据文件和启动时须求的计划文件等等都可放于该目录
6.
Temp用于存放临时转移文书,其中Compile存放编译器编译时生成的obj文件,Link存放链接器的输出文件。

图片 9

7.PureMilk和ChocoliteMilk四个档次的头文件和源文件地点不要动,任然在独家的品类文件夹内。
地点目录结构清晰,一面通晓,当大家的主次须要打造安装包或者要打包源码
揭橥的时候,它能够使得大家生活变得更易于^_^
制作安装包时大家只需将“/GMA/Bin/Release/”目录下的拥有文件打包。
公布和更换源码的时候大家得以打包除了Temp目录以外“/GMA/”上边的有着文件和目录(如若不须求执行档,也可不包涵Bin)。

那辈子最不后悔的政工:小学阶段三年时光脱离体制,在家自修,玩儿,直到玩够了。其中游学一年。

大家的必要是显著的,不过VC
2008(VS2008)并不会活动为大家做好地方装有的工作。不过大家并不必要编写复杂的编译脚本(makefile),只须要简单的修改项目的缺省设置即可。
俺们须求VC(VS)为大家做的事务蕴含:
1.运用“/GMA/Temp/Compile/”作为项目编译时利用的中档目录
2.利用“/GMA/Temp/Link/”作为项目链接的输出目录
3.当项目是应用程序时,在构建截止后拷贝执行文书到“/GMA/Bin/Release/”或“/GMA/Bin/Debug/”,当项目是动态链接库时,除了拷贝dll到Bin,还拷贝导入库到“/GMA/Lib/”
4.当门类是应用程序时,调试时运行“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”上面的实践文书,并以“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”为工作目录
先是看一下门类安装中可以行使的宏,常用的有:

有教无类的青城山真面目是首先让一个人知晓她是怎么?而不是热切教会他怎么着。过早的教给他知识,就会促成她忘了友好是何许?

ConfigurationName 配置名字,通常是Debug或者Release
IntDir 编译器使用的中间目录,产出obj文件
OutDir 链接器使用的输出目录
ProjectDir 项目目录
ProjectName 项目名字
SolutionDir 解决方案目录
TargetDir 目标输出文件所在的目录
TargetExt 目标输出的扩展名
TargetFileName 目标输出文件名,包括扩展名
TargetName 目标输出名,不包括扩展名
TargetPath 目标输出文件的全路径名

图片 10

 

 

 

 

 

 

下图是某一个工程具备安装的事例:

图片 11
专注:从上图可以看到,TargetDir指目的目录,是一个目录。而TargetPath是目的路径,包罗具体的公文名

 

下边开首开展所举事例的工程安装:

首先来安装ChocolateMilk:
1.运用“/GMA/Temp/Compile/”作为项目编译时行使的中游目录
2.用到“/GMA/Temp/Link/”作为项目链接的输出目录
图片 12

注意高亮的有些,首先将配置改成All
Configuration(全体配置),那样可以让大家同时修改Debug和Release的局地;
Output Directory(输出目录,链接器)栏位填入:
$(SolutionDir)TempLink$(ProjectName)$(ConfigurationName)
Intermediate Directory(中间目录,编译器)栏位填入:
$(SolutionDir)TempCompile$(ProjectName)$(ConfigurationName)
3.构建截止后拷贝动态链接库到“/GMA/Bin/Release/”或“/GMA/Bin/Debug/”,拷贝导入库到“/GMA/Lib/”【那是因为若不设置,此时转变的dll和lib都在上头安装的输出目录中】
大家平日都会在Debug版本的输出库前边加上字母“d”以代表这是Debug版本,在Debug配置下,修改Import
Library
栏位:
图片 13

VC可以让我们设置构建前后执行的脚本程序,所以为了形成3,
大家需要写构建后进行的台本:
图片 14

在Command Line中填入,Debug配置下:
copy $(TargetPath)    $(SolutionDir)Bin$(ConfigurationName);
copy $(TargetDir)$(TargetName)d.lib    $(SolutionDir)Lib;
Release配置下:
copy $(TargetPath)    $(SolutionDir)Bin$(ConfigurationName);
copy $(TargetDir)$(TargetName).lib    $(SolutionDir)Lib;
据此要分别设置是因为VC没有表示导入库的宏名字 -_-P
OK,到此为止,你就足以编译ChocolateMilk项目试试是还是不是一切正常了,可是请确认拷贝的目的目录事先建立好。

 

接下去我们设置应用程序项目PureMilk:
1.选拔“/GMA/Temp/Compile/”作为项目编译时利用的中间目录
2.行使“/GMA/Temp/Link/”作为项目链接的出口目录
先是将安排改成All
Configuration(全体配置),这样可以让我们还要修改Debug和Release的一部分;
Output Directory(输出目录,链接器)栏位填入:
$(SolutionDir)TempLink$(ProjectName)$(ConfigurationName)
Intermediate Directory(中间目录,编译器)栏位填入:
$(SolutionDir)TempCompile$(ProjectName)$(ConfigurationName)
3.构建甘休后拷贝执行文书到“/GMA/Bin/Release/”或“/GMA/Bin/Debug/”
在Command Line中填入,All配置下:
copy $(TargetPath)    $(SolutionDir)Bin$(ConfigurationName);
4.调剂时运行“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”上边的实践文书,并以“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”为办事目录
图片 15

Command栏位填入:$(SolutionDir)Bin$(ConfigurationName)$(TargetFileName)
Working Directory栏位填入:$(SolutionDir)Bin$(ConfigurationName)
那样就马到功成了,现在您就足以编译该实施顺序并开展调试。

 

 

以vs2010为列,一些门类性质截图如下:

一、调试-》命令

图片 16

如上图设置,如果项目名称为ss,则TargetName系统变量的值就是ss,TargetExt是扩展名为exe,此时单击调试按钮(vs中的那些小三角形按钮),会起动图中所示目录下的ss-XX-.exe文件。

专注:调试栏目下的具有选项都是为了调节服务的,倘诺不用调试按钮,那些采纳就不起功能。至于VC++目录以及C/C++栏目是给编译器起作用的,不可能是告诉编译器在何地寻找头文件、库文件之类的事体,或者安装任何部分编译器选项,此不赘述。

 

二、链接器-》常规-》输出文件  (表示链接器生成的exe文件放在哪以及变更的exe文件名称)图片 17

上图中,如若项目名称为ss,则连年器生成的exe为图中所示目录下的ss-YY-.exe文件。一般的话那几个文件的职位和名称要和方面所述的“命令”选项相同,以象征链接器生成的文本和调节时利用的文本一律。(注意调试时只要没有修改源代码操作,单击调试按钮后,为了加速调试速度,并不会对先后重新链接,也即不会启动链接器)

透过自身做过的局地试行求证,尽管已经经过链接器生成了exe文件,手动修改那一个exe文件名,调试时如若将上图所示的抉择的文本名也展开相应的修改,一样可以拓展调试并启动exe程序。

 

三、链接器-》输入-》附加依赖项   (此选项是设置程序链接时使用的静态库。相当于链接已经编译好了的“代码”。由此大家得以概括的以为这么些库就一定于我们写的.cpp文件,只可是那些库是编译好了的.cpp而已)

图片 18

 

终极说一下,在付出进程中,究竟怎么来让 Visual Studio 链接这几个 lib 及
dll 文件会比较好吧?

 因为,在调节 Visual Studio 2008 程序时,平时有一些动态链接库(即 dll
文件)须要加载到工程里,那样才能依靠第三方库举行程序调试。

这几个动态链接库,往往都是测试版本或是开发中的版本,或者会有好四个本子;那么些时候,如果直接把
dll 所在目录加到 PATH 里,则会有暧昧冲突的义务险;如若直白拷贝到 Visual
Studio
的目录下,假若测试工程太多,每趟有新本子的动态链接库更新时,你需求立异若干次,拷贝、粘贴苦不堪言。

一体化上来说,有二种形式可以改变 Visual Studio 的环境变量设置:

  1. 一向抬高到系统的 PATH
    变量里

    那些方法最简易,也最直接,然则坏处是会潜移默化全局的 PATH
    设置,更加是你包蕴着大批量测试用的 dll 时。

  2. 在 Visual Studio 全局设置里,把 dll 所在目录添加到 PATH 里:

    通过 Visual Studio 菜单 ==> 工具 ==> 选项 ==>
    项目和缓解方案 ==> VC++目录,在下拉框里挑选”可执行文件”,然后把
    dll 所在路子添加进去。

  3. 直接把具备 dll 拷贝到 Visual Studio
    工程目录下,或是拷贝到生成可执行文件的文件夹(默许景况下是 Debug 或
    Release 目录)下:

    那几个主意也很简单,不过当您有多少个工程时,你每一回换代 SDK 及其 dll
    文件,你就要把装有的工程都更新,那些不切合文件唯一性的工程性准则。

  4. 在调试程序时,让 Visual Studio 帮您切换当前工作目录到 dll
    相应的目录下:

    在 Visual Studio ==> Project ==> Properties ==> Select
    Configuration ==> Configuration Properties ==> Debugging
    ==> Working directory 里填上 dll
    所在目录,这样当在调试程序时,Visual Studio
    会把当前工作目录切换来这些目录下,从而会自动读取本目录下的 dll
    文件。

    这一个方法的长处很显然,不难!副成效也很明显,在你切换了当前工作目录后,你恐怕会找不到程序的布署文件,在程序里写的例如”./config.ini”全部都找不到了;其余,你要把拥有的
    dll 都停放这么些工作目录里,否则一律会提醒说找不到 xxx.dll 的题材。

  5. 末段一个办法,也是自身觉着最好的一个主意,在 Visual Studio
    工程属性里把一个目录临时添加到 PATH 环境变量里:

    MSDN 上也有近似的牵线:How to: Set Environment Variables for
    Projects
    ,方法很粗略,在
    “工程属性” ==> “调试” ==> “环境”里,添加类似如下所示的情节:

    PATH=%PATH%;$(TargetDir)DLLS
    

    那样就足以把 $(TargetDir)DLLS 临时添加到该工程所属的系统 PATH 里。

世家可以根据项目的骨子里情况,灵活选择以上措施。

 

 

 

附1:C#得到设置工作目录和执行目录代码

(1)获取和安装当前工作目录

a)          System.IO.Directory.GetCurrentDirectory()

申明:获取应用程序的当前工作目录的一点一滴限定路径。该方式是对Win32
API的GetCurrentDirectory函数的一个包装。

例如:'”C:Documents and SettingsAdministratorMy Documents”

b)         System.Environment.CurrentDirectory  

证实:获取或安装当前工作目录的一心限定路径。该属性之中调用的就是System.IO.Directory.GetCurrentDirectory()方法,二者是功用是等价的。

例如:'”C:Documents and SettingsAdministratorMy Documents”

c)          System.IO.Path.GetFullPath(“.”)

表明:获取指定路线字符串的相对路径。也得以用GetFullPath(“.”),GetFullPath(“.\”)

例如:'”C:Documents and SettingsAdministratorMy Documents”

(2)获取和装置当前举办目录

a)          System.Windows.Forms.Application.StartupPath

注脚:获取启动了应用程序的可执行文件的门径,不包涵可执行文件的称呼。常用于WinForm.

例如:'”D:ProjectsMyTestbin”

b)         System.AppDomain.CurrentDomain.BaseDirectory

证实:获取基目录,它由程序集争辨解决程序用来探测程序集。再次回到路径末尾带“”

例如:'”D:ProjectsMyTestbin”

c)          System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

证实:获取或设置包蕴该应用程序的目录的称谓。重临路径末尾带“”

例如:'”D:ProjectsMyTestbin”

(3)获取和设置当前实践目录,包含可执行文件名

a)          System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

证实:获取模块的完好路径。包罗可执行文件的称谓。

例如:'”D:ProjectsMyTestbinMyTest.exe”

b)         System.Windows.Forms.Application.ExecutablePath

证实:获取启动了应用程序的可执行文件的门径,包蕴可执行文件的名号。

例如:'”D:ProjectsMyTestbinMyTest.exe”

c)          System.Reflection.Assembly.GetExecutingAssembly().Location

证实:如若带有清单的已加载文件并未被形象复制,则赢得该文件的焦点代码格式的职责。

例如:'”D:ProjectsMyTestbinMyTest.exe”

d)         System.Reflection.Assembly.GetExecutingAssembly().CodeBase

注脚:获取最初指定的顺序集的岗位,例如,在AssemblyName对象中指定的职分。

例如:'”file:///D:/Projects/MyTest/bin/MyTest.exe”

 

 

附2:vs(重倘诺.Net)中常用的各连串型的文书:

附:*.ascx *.asax *.aspx.resx
*.asax.resx是何等文件

sln:解决方案文件,为化解方案资源管理器提供显示管理文件的图片接口所需的音讯。 
.csproj:项目文件,成立应用程序所需的引用、数据连接、文件夹和文件的音信。 
.aspx:Web
窗体页由两部分构成:视觉元素(HTML、服务器控件和静态文本)和该页的编程逻辑。Visual
Studio 将那多少个组成部分分别存储在一个单身的文书中。视觉元素在.aspx
文件中开创。
.aspx.cs:Web
窗体页的编程逻辑位于一个单身的类公事中,该文件称作代码隐藏类文件(.aspx.cs)。 
.cs: 类模块代码文件。业务逻辑处理层的代码。 
.asax:Global.asax 文件(也叫做 ASP.NET
应用程序文件)是一个可选的文书,该文件包涵响应 ASP.NET 或 HTTP
模块引发的应用程序级别事件的代码。
.config:Web.config 文件向它们所在的目录和所有子目录提供配置新闻。 
.aspx.resx/.resx:资源文件,资源是在逻辑上由应用程序计划的别样非可实施多少。通过在资源文件中储存数据,无需重新编译整个应用程序即可更改数据。 
.XSD:XML schema的一种.从DTD,XDR发展到XSD 
.pdb:PDB(程序数据库)文件保持着调节和品种处境新闻,从而得以对先后的调节配置进行增量链接。 
.suo:解决方案用户拔取,记录所有将与解决方案创设关联的选项,以便在历次打开时,它都包涵您所做的自定义安装。 
.asmx:asmx 文件包蕴 Web瑟维斯(Service) 处理指令,并用作 XML Web services
的可寻址入口点 
.vsdisco(项目发现)文件 基于 XML 的文本,它包涵为 Web
服务提供发现信息的资源的链接 (URL)。 
.htc:一个HTML文件,包罗脚本和概念组件的一多元小米特定元素.htc提供在剧本中implement组件的体制 

.ascx 是用户控件代码文件
.aspx webform html脚本文件
.cs 是c#类文件)
.vb 是vb类文件)
.aspx.cs 和您的webform相关的后台c#代码文件,其实跟.cs是均等的
.aspx.vb 和您的webform相关的后台VB代码文件,其实跟.vb是同一的
web.config 配置文件
.xml xml文件

.css 样式表文件

 

转自: http://blog.csdn.net/yyhero1/article/details/19272637

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图