Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file VS2003在命令行上生成抛出错误_Batch File_Build_Msbuild_Build Automation_Visual Studio 2003 - Fatal编程技术网

Batch file VS2003在命令行上生成抛出错误

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

我正在尝试使用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\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个项目在一个单一的解决方案,这将真的帮助我大把的时间来创建一个自动化的建设

非常感谢!干杯

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

    “c:\myfullpath\Devenv.exe”/rebuild debug/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,它将失败。因此可能会有一些排序巫术。

    我不确定您到底想要什么,但要自动编译我使用的
    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"