Batch file VS2003在命令行上生成抛出错误
我正在尝试使用VisualStudio2003的命令行进行自动生成。我有以下代码:Batch file VS2003在命令行上生成抛出错误,batch-file,build,msbuild,build-automation,visual-studio-2003,Batch File,Build,Msbuild,Build Automation,Visual Studio 2003,我正在尝试使用VisualStudio2003的命令行进行自动生成。我有以下代码: call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat" Devenv /rebuild debug /project Project1 "C:\Builds\MyApp\Sample.sln" Devenv /rebuild debug /project Project2 "C:\Builds\My
call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
Devenv /rebuild debug /project Project1 "C:\Builds\MyApp\Sample.sln"
Devenv /rebuild debug /project Project2 "C:\Builds\MyApp\Sample.sln"
Devenv /rebuild debug /project Project3 "C:\Builds\MyApp\Sample.sln"
在上面的脚本中,我分别构建了每个项目(就像我在互联网教程中看到的那样)。但是每次我尝试构建时,它都会给我带来很多关于找不到Microsoft名称空间的错误。以下是我在构建时收到的错误消息示例:
- 导入的命名空间或类型“Data” 找不到“Microsoft.Practices.EnterpriseLibrary.Data”
- 导入的命名空间或类型“Sql”
找不到“Microsoft.Practices.EnterpriseLibrary.Data.Sql” - 导入的命名空间或类型“日志记录”
找不到“Microsoft.Practices.EnterpriseLibrary.Logging” - 无法生成附属程序集,因为主项目
缺少输出
call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
Devenv C:\Builds\MyApp\Sample.sln /rebuild "Debug"
谁能告诉我我错过了什么?
我有超过50个项目在一个单一的解决方案,这将真的帮助我大把的时间来创建一个自动化的建设
非常感谢!干杯
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" MySolution.sln /clean
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" /build debug /project MyProject001 MySolution.sln
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" /rebuild debug /project MyProject001 MySolution.sln
注意,如果我使用MySolution.sln(在第一个示例中)切换/clean,它将失败。因此可能会有一些排序巫术。我不确定您到底想要什么,但要自动编译我使用的
msbuild
的C#项目
例如,这是我用来构建一些XNA项目游戏的代码:
示例代码:
现在,要满足任何其他要求,只需在将其添加到path
environemtn变量后键入msbuild/?
。最好的是,这将是内置的每个windows计算机
请询问您是否还想知道其他事情,或者是否想做其他事情。试试以下方法:
您的每个项目都应该参考“Microsoft.Practices.EnterpriseLibrary”-文件、DLL或存储它们的任何地方
可能在打开IDE的过程中,会保存一个引用并将其复制到相应的生成文件夹中。(生成任务后)。独立构建时,无法找到引用。
如果存在任何复制任务,请检查相对路径。与IDE中的构建相比,构建后的依赖文件可能指向不同的文件夹。?
只是另一个想法。嗨。谢谢你的回复。我已经尝试调用devenv而不是vsvars32.bat,但它只会打开IDE。我希望使用命令行构建的原因是,我不希望所有的项目文件都加载到IDE上(因为有50多个项目文件,所以需要很长时间)。谢谢。:)您需要提供一些参数以使命令行工作(而不是显示IDE/GUI)。我对我的原始响应进行了编辑。我目前在批处理文件中有这个,但它说这不是一个可识别的命令。有什么想法吗?“C:\Program Files\Microsoft Visual Studio.NET 2003\Common7\IDE”/rebuild debug/project Project1“C:\Builds\MyApp\Sample.sln”“C:\Program Files\Microsoft Visual Studio.NET 2003\Common7\IDE”必须是“C:\Program Files\Microsoft Visual Studio.NET 2003\Common7\IDE\devenv.exe”您能发布一个.csproj(或.vbproj)吗文件内容?对不起,我不能这么做。项目文件主要由类文件组成,因此我们将查看.CS和一些.VB文件。在所有50多个项目文件中,我只有一个网站引用了其余的类库。你可以删除.cs文件引用。“其他东西”是我要看的。我已经试过第一种了。根据您的第二个想法,我的构建在使用IDE时运行良好,因此我猜路径是正确的,文件也在那里。谢谢。我不确定,试试看。据我所知,只要它是C#,并且您已经安装了所有必需的扩展(例如XNA game studio),那么它应该可以正常工作。
@echo off
set path=%path%;C:\Windows\Microsoft.NET\Framework\v4.0.30319
Rem In the above line replace "v4.0.30319" with the latest framework version you have
Rem (or include the path to youy inbuilt compiler)
Msbuild "C:\Builds\MyApp\Sample.sln"