Visual studio 2010 如何加载64位Visual Studio工具命令提示符?

Visual studio 2010 如何加载64位Visual Studio工具命令提示符?,visual-studio-2010,windows-7,64-bit,Visual Studio 2010,Windows 7,64 Bit,我的开发计算机运行的是Windows 7 Ultimate x64。我安装了VisualStudio2010 Ultimate。当我打开Visual Studio命令提示符(2010)时,我收到了消息 设置使用Microsoft Visual Studio 2010 x86工具的环境 我还在Windows PowerShell用户配置文件中设置了。我使用Invoke-BatchFilecmdlet将Visual Studio工具安装到我的所有PowerShell会话中 $vcargs = ?:

我的开发计算机运行的是Windows 7 Ultimate x64。我安装了VisualStudio2010 Ultimate。当我打开Visual Studio命令提示符(2010)时,我收到了消息

设置使用Microsoft Visual Studio 2010 x86工具的环境

我还在Windows PowerShell用户配置文件中设置了。我使用
Invoke-BatchFile
cmdlet将Visual Studio工具安装到我的所有PowerShell会话中

$vcargs = ?: {$Pscx:Is64BitProcess} {'amd64'} {'x86'}
$vcvars = "${env:VS100COMNTOOLS}..\..\VC\vcvarsall.bat"
Invoke-BatchFile $vcvars $vcargs
我的
vargs
解析为
amd64
。我在
vcvarsall.bat
文件中查找x64批处理文件的位置,得到了
~dp0bin\amd64\vcvars64.bat
。该目录(和文件)不存在

如何正确安装
vcvars64.bat
文件?

安装x64组件 问题在于Visual Studio的安装不完整。我只安装了C#组件。我至少需要安装<强> Visual C++ X64编译器和工具>/P> 向现有安装添加组件 我必须将这些组件添加到现有安装中。VS2010,尤其是安装了SP1的VS2010,在修改安装时有大量的bug。我遇到了某种路径未找到错误

  • 我先卸载了SP1。我手头需要VS2010安装介质(到目录、插入真正的光盘或虚拟驱动器)
  • 然后我将VC++组件添加到VS安装中
  • 然后我就可以重新安装SP1了

  • 我已经遇到过很多次大致相同的问题。MS为此设置的结构似乎非常脆弱,在同一台机器上安装或删除任何软件(或者,显然,在该机器附近的任何地方呼吸)都可能并将破坏它。更糟糕的是,它们有一个几乎无法穿透的批处理文件网,这些批处理文件相互调用,最终以似乎最迂回的方式执行一些相当琐碎的任务

    虽然我认为这会浪费一点内存,但我还是决定简化我的生活,并使用以下方法:

    #include <windows.h>
    #include <iostream>
    #include <string>
    #include <process.h>
    
    void setenv(std::string const &name, std::string const &value) { 
        SetEnvironmentVariable(name.c_str(), value.c_str());
    }
    
    std::string vs_base = "C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\";
    std::string vc_base = vs_base + "VC\\";
    std::string sdk_dir = "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\";
    
    int main(int argc, char **argv) { 
        char inc_name[] = "INCLUDE";
        char lib_name[] = "LIB";
        char path_name[] = "PATH";
    
        std::string inc_dir = getenv(inc_name);
        std::string lib_dir = getenv(lib_name);
        std::string path_dir = getenv(path_name);
    
        inc_dir = vc_base + "include;" + sdk_dir + "include;" + inc_dir;
        lib_dir = vc_base + "lib;" + sdk_dir + "lib;" + lib_dir;
        path_dir = vc_base + "bin;" + sdk_dir + "bin;" + vs_base + "Common7\\IDE;" + path_dir;
    
        setenv(inc_name, inc_dir);
        setenv(lib_name, lib_dir);
        setenv(path_name, path_dir);
    
        char path[MAX_PATH];
    
        GetSystemDirectory(path, sizeof(path));
        strcat(path, "\\cmd.exe");
        _spawnlp(_P_WAIT, path, path, NULL);
    
        return 0;
    }
    
    #包括
    #包括
    #包括
    #包括
    void setenv(std::string const&name,std::string const&value){
    SetEnvironmentVariable(name.c_str(),value.c_str());
    }
    std::string vs_base=“C:\\程序文件(x86)\\ Microsoft Visual Studio 10.0\\”;
    std::string vc_base=vs_base+“vc\\”;
    std::string sdk_dir=“C:\\Program Files(x86)\\Microsoft sdk\\Windows\\v7.0A\\”;
    intmain(intargc,字符**argv){
    char inc_name[]=“包括”;
    char lib_name[]=“lib”;
    char path_name[]=“path”;
    std::string inc_dir=getenv(inc_name);
    std::string lib_dir=getenv(lib_name);
    std::string path\u dir=getenv(path\u name);
    inc_dir=vc_base+“include;”+sdk_dir+“include;”+inc_dir;
    lib_dir=vc_base+“lib;”+sdk_dir+“lib;”+lib_dir;
    path_dir=vc_base+“bin;“+sdk_dir+”bin;“+vs_base+”Common7\\IDE;“+path_dir;
    setenv(公司名称,公司董事);
    setenv(lib_name,lib_dir);
    setenv(路径名称,路径目录);
    字符路径[最大路径];
    GetSystemDirectory(路径,sizeof(路径));
    strcat(路径“\\cmd.exe”);
    _spawnlp(_P_WAIT,path,path,NULL);
    返回0;
    }
    

    您必须调整顶部的基本目录,以适应您安装东西的位置。有一天,我想我应该重写它,使用一个单独的配置文件(我已经制定了一个XML格式,应该可以很好地工作),但这已经足够好了,我没有费心去完成它,因为它是为程序员准备的,进行简单的修改和重新编译并不特别繁重。

    在批处理程序中运行时,%~dp0将扩展到.bat文件执行的路径。因此,在VS2010的默认安装中,解析为c:\program files\microsoft visual studio 10.0\vc\bin\amd64\vcvars64.bat。这确实是缺失的,这是一个他们似乎不存在的错误


    改用“x86_amd64”。您将得到交叉编译器,与IDE使用的编译器相同。

    您有Microsoft Windows SDK 7.1吗

    打开普通Visual Studio命令提示符并键入:

    setenv /x64
    

    如果您的64位编译器丢失,您可能需要阅读。

    我遇到了问题,我有visual studio 2010 professional(我猜不是SP1,它在大约中写着“Version 10.0.30319.1 RTMRel”),我也有问题,在
    C:\Program Files(x86)\Microsoft visual studio 10.0\VC
    文件夹中,它有vcvarsall.bat,但是它试图找到任何其他.bat文件的所有路径都是无效的,也就是说我没有其他的bat文件

    我偶然发现,这是唯一解决我问题的办法。 这里的一些人也说“只使用SetEnv”,但我不知道它在哪里,因为它不在我的路径中(键入SetEnv导致“command not found”),所以这是一个更完整的答案,我在这里发布,这样人们就不必像我一样挣扎这么久

    在此处张贴以存档:

    用于设置要编译的64位环境参数的批处理文件 包含在Windows SDK中

    安装Windows SDK后,请使用以下调用 “C:\Program Files\Microsoft SDK\Windows\v7.1\Bin\SetEnv.cmd”/x64

    或创建文件C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\amd64\vcvars64bat和上面的行


    我已尝试安装Windows 7和.NET 3.5 SP1 SDK以及Windows 7和.NET 4.0 SDK。他们安装了`~dp0bin\amd64`目录,但没有安装x64批处理文件。我只安装了C#开发环境(当我安装VS2010时)。不要卸载任何东西,这是一个已知的错误,有一个简单的解决方法。连接错误提交人,没有评论的否决票很糟糕。是关于和汉斯的分歧吗?我不知道如何以不同的方式陈述我的情况。在没有安装V的情况下,我没有Hans所指的组件