VS2003在命令行上构建抛出错误

时间:2013-08-22 16:13:00

标签: batch-file build msbuild build-automation visual-studio-2003

我正在尝试使用Visual Studio 2003的命令行进行自动构建。我有以下代码:

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命名空间的错误。以下是我在构建中获得的示例错误消息:

  • 命名空间或输入Imports的“数据” 找不到“Microsoft.Practices.EnterpriseLibrary.Data”。

  • 导入的命名空间或类型“Sql”
    找不到“Microsoft.Practices.EnterpriseLibrary.Data.Sql”。

  • 命名空间或输入Impging的“Logging” 找不到“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多个项目,这对我来说真的有很大的帮助。为此创建一个自动构建。

非常感谢!干杯!

3 个答案:

答案 0 :(得分:0)

  1. 不要“调用”“vsvars32.bat”文件。
  2. 使用“Devenv.exe”的完整路径(而不是#1)。
  3. 可选:(也许这是踢球者)..... cd到.sln文件所在的目录。

    “c:\ myfullpath \ Devenv.exe”/ rebuild debug / project Project1“C:\ Builds \ MyApp \ Sample.sln”

  4. 从命令行尝试,看看会发生什么。

    未来注:

    在2.0中,您不使用“devenv.exe”,而是将其更改为msbuild.exe。 (就像一个FYI)。

    您还可以查找MSBee。 (如何使用msbuild构建1.1应用程序)。

    修改

    所有这些线路都在为我工作.......我没有安装VS2003了。但我使用VS2010 devenv.exe来运行一些样本。

    "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(在第一个例子中).....它失败了。所以可能有一些订购伏都教。

答案 1 :(得分:0)

我不确定你想要什么,但我自动编译我使用msbuild的C#项目。

例如,这是我用来构建一些XNA项目游戏的代码:

示例代码:

@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"

现在,为了满足您的任何其他要求,只需在将msbuild /? environemtn变量添加到path environemtn变量后输入{{1}}即可。最好的是这将是每个Windows组件的内置版本!

请询问您是否想知道其他任何事情,或者您是否想要做其他事情。

答案 2 :(得分:0)

试试这个: 您的每个项目都应该引用“Microsoft.Practices.EnterpriseLibrary” - 文件,dll或者存储这些文件。

在打开的IDE中,可能会持有一个引用并将其复制到correspodending构建文件夹中。 (构建任务后)。在独立建立它时,无法找到参考文献。 如果存在任何复制任务 - 请检查相对路径。与构建IDE相比,构建后,您的依赖文件可能会定位到不同的文件夹。 只是另一个想法..