0

我正在尝试使用 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 命名空间的错误。以下是我在构建中收到的示例错误消息:

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


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


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

  • 无法生成附属程序集,因为
    缺少主项目输出。

我尝试了另一种构建方法,但这次它是整个解决方案,但它仍然给我同样的错误。

call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
Devenv C:\Builds\MyApp\Sample.sln /rebuild "Debug"

有人可以告诉我我错过了什么吗?我在一个解决方案中有 50 多个项目,这真的会帮助我大量时间为此创建一个自动构建。

非常感谢!干杯!

4

3 回答 3

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

    "c:\myfullpath\Devenv.exe" /rebuild 调试 /project Project1 "C:\Builds\MyApp\Sample.sln"

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

未来注意事项:

在 2.0 中,您不使用“devenv.exe”,而是将其更改为 msbuild.exe。(仅供参考)。

您还可以查找 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 ......它会失败。所以可能会有一些订购巫毒。

于 2013-08-26T14:17:19.873 回答
0

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

例如,这是我用来构建一些 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 /?在将其添加到您的pathenvironemtn 变量后键入即可。最好的事情是这将为每台 Windows 计算机内置!

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

于 2013-09-04T00:20:06.307 回答
0

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

也许在一个开放的 IDE 中,一个人持有一个引用并将其复制到相应的构建文件夹中。(在构建任务之后)。在独立构建时,找不到参考资料。如果存在任何复制任务 - 检查相对路径。与在 IDE 中构建相比,构建后您的依赖文件可能指向不同的文件夹。?只是另一个想法..

于 2013-09-04T08:40:53.837 回答