[C#] 项目设置
为了方便及有效的管理各种文件,包括项目文件、源码、资源、目标生成文件和临时生成文件,需要对各种文件分类存放,并且对项目进行必要的设置,以便与目录结构相对应。
1 目录结构
预期目标是实现项目文件、源码、资源、目标生成文件和临时生成文件分开存放,将项目文件放在一个文件夹中,源码和资源放在另一个文件夹中,目标生成文件和临时生成文件放在再另一个文件夹中。但是限于VS的限制,无法实现,那么退而求其次,将项目文件、源码和资源放在一个文件夹中,目标生成文件和临时生成文件放在另一个文件夹中。
预期目标 目录结构:

实际 目录结构: 
2 项目设置
2.1 设置bin目录
右击项目,选择“属性”,选择“生成”选项卡,在输出路径中,填写以下内容:
Debug: ..\target\bin\Debug
Release: ..\target\bin\Release

2.2 设置obj目录
由于visual studio不能直接设置obj的路径,就只能直接修改项目文件了。
首先打开项目文件,即XXXX.csproj,在<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">和<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">下添加:
<BaseIntermediateOutputPath>..\obj\</BaseIntermediateOutputPath>和
<UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>
如果把第2个选项去掉,并且把项目所在目录的obj目录删掉的话,rebuild项目时就会报错。
每次重新打开或rebuild项目的时候,ide都会重新创建obj目录,这个实在是太烦了,所以在postbuild下添加:
rmdir /s/q $(ProjectDir)obj
删除文件夹以及文件夹内所有内容(/s是删除所有子目录以及其中的内容;/q是在删除时,不提示yes or no)
2.3 设置生成事件
通常我们在编译一个工程或是链接库的时候,需要在编译链接之前或者编译链接之后执行一些操作,比如:拷贝一些第三方库到工程的工作目录下或执行一些批处理(shell)操作,这个时候就需要在编译器环境中进行相关设置:
说明: 在vs2005以及以上都支持了Build Events, 同时可以支持多行命令.
而在vs2003中要想执行多行命令,只能把命令写在一个批处理文件中,然后通过调用批处理来执行.
-
打开Build Events方框步骤:
1.右键单击项目,选择“属性”
2.选择“生成事件”,可以看到Pre-build (生成前事件命令)和Post-build(生成后事件命令),以及运行Post-build event 的条件 -
可以在相应的编译事件中添加以下常用操作:
1.build完后修改build产物的名字(后缀),并覆盖已有的同名文件.
copy /y $(TargetFileName) $(TargetName).XXX
2.调用外部命令或批处理:
call "C:\Program Files\XXX.exe"
3.条件判断:
IF NOT $(ConfigurationName) == Release GOTO end call "C:\Program Files\XXX.exe" $(ProjectDir)$(TargetName).cvp :end
4.web project 自动部署
copy $(TargetDir)*.* //MyServer/MyService/bin copy $(ProjectDir)*.ascx //MyServer/MyService
5.拷贝文件到制定目录
copy "$(ProjectDir)pri.bin" "$(SolutionDir)$(SolutionName)\$(OutDir)"

浙公网安备 33010602011771号