当前位置: 爱符号 - 所有分类 - 桌面应用 - C# - 教你一招:用命令行编译csproj项目文件
教你一招:用命令行编译csproj项目文件 JiaoNiYiZhao:YongMingLingXingBianYicsprojXiangMuWenJian
符号空间 发表于:2012-10-13 23:24:17 阅读(2639)
关键词:VisualStudio VisualStudio csproj csproj C# C#
摘要:最近为了方便开发,有一个辅助工具会生成一些代码,并自动生成一个项目(csproj),刚开始是手动打开项目,然后编译。 这时候就会弹出保存对话框,要求保存解决方案,很是麻烦,而且如果有错误还得重新生成。 因为生成工具不是直接生成代码,而是根据一些配置,其中还包括可自定义代码,所以手写的代码,多少会有点毛病,所以来回折腾不方便。 后来想到一个办法,调用devenv.com 进行编译csproj项目文件 devenv "test.csproj" /build

    最近为了方便开发,有一个辅助工具会生成一些代码,并自动生成一个项目(csproj),刚开始是手动打开项目,然后编译。

这时候就会弹出保存对话框,要求保存解决方案,很是麻烦,而且如果有错误还得重新生成。

因为生成工具不是直接生成代码,而是根据一些配置,其中还包括可自定义代码,所以手写的代码,多少会有点毛病,所以来回折腾不方便。

后来想到一个办法,调用devenv.com 进行编译csproj项目文件


    刚开始以为是用csc来编译,测试了一下不可以,它只能编译CS文件,如果要编译整个项目,就得把里面用到的引用,还有代码文件等都用命令行传过去,

如果这样的话,csproj项目文件就失去意义了


命令行:devenv "test.csproj" /build


1.为什么不是devenv.exe ?

    因为跟devenv.exe同目录的还有一个 devenv.com,它是用于命令行的,而com会优先于exe,所以完整的写法是 devenv.com "test.csproj" /build

2.项目名称相对还是绝对?

    建议用引号括起来,并且用绝对。相对的话,必须在项目所在的文件夹来调用命令行(不懂的就用绝对路径)。

3.为什么提示 "devenv"不是有效的命令?

   没有启用环境变量。开始-程序-Visual Studio 2010/2008 找找看,有一个 黑乎乎的图标,叫:Visual Studio 命令提示(2010)

    其实可以把要做的操作写成一个bat文件,请参考如下代码:

@echo off
call "D:\.system\app\Microsoft Visual Studio 10.0\VC\vcvarsall.bat\"  x86_ia64
devenv "d:\test\test.csproj" /build
pause

    第1行:关闭命令输出,以免输出多余的信息

    第2行:调用环境命令,具体请参考自己的安装目录,2008也可以这样调用

    第3行:编译

    第4行:暂停一下,看看有没有什么错误提示


4.更多的命令应使用devenv.exe,这里仅为需要偷点懒的人提供一个方便。




声明:以上内容仅代表作者观点,不代表爱符号赞成此内容或立场
VisualStudio相关的分享
 
csproj相关的分享
 
  • ·暂无相关分享
  •  
C#相关的分享
 
作者热播