问题标签 [devenv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - Visual Studio/devenv:确保使用 devenv/CLI 时运行预处理器宏
使用 Visual Studio 2005,我遇到了一个问题,即 devenv 的行为与 GUI IDE 不同,即使在调用 VCvarsall.bat 并使用 /useenv 切换到 devenv 时也是如此。即使我只在这个项目上运行 clean(当我使用 GUI 时,我需要 devenv 以相同的方式运行),也会调用创建一堆文件的东西。我唯一能找到的可能是预处理器宏。没有预构建或预链接事件,只有构建后事件,这似乎不是创建这些文件的原因。我是 VS 新手,不是程序员,这不是我的项目。我只是负责通过 CLI 将其自动化。请原谅我的无知并帮助我。
TL;DR 当我运行 /rebuild 时,如何确保 devenv 与 GUI 执行完全相同的操作?如何确保 Devenv 使用项目中定义的预处理器宏?
visual-studio-2012 - Nant 使用 devenv 构建和发布 Visual Studio 2012 解决方案?
我正在尝试将 Visual Studio 2010 项目合并到 2012。2010 解决方案有一个部署项目,其输出可以通过在 2012 年发布来复制。我们的构建脚本看起来像这样:
如何使用我定义的发布配置文件将其更新为发布该解决方案中的项目之一?
visual-studio-2008 - 奇怪的 VS2008 (devenv) Nant 编译问题
这是背景,我们有一个解决方案文件(a.sln),其中包含 2 个项目(service.csproj 和 client.csproj)。还有另一个旧的解决方案文件 (b.sln),其中包含 3 个项目(service.csproj、client.csproj 和 test.csproj)。我们也不使用此解决方案文件和测试项目。
我们使用 NANT 脚本进行编译。在 NANT 中,我们使用<exec> task
调用“devenv.com”来编译解决方案文件。我试图对构建脚本进行一些更改(在构建过程中动态生成服务的代理),因此我试图单独编译 service.csproj 文件。我更新了 NANT 脚本,如下所示:
但是当执行上述行时,它会编译(按以下顺序)
一个。client.csproj b. 服务.csproj c. 测试.csproj
service.csproj 没有对客户端和测试项目的任何项目引用。
我想知道到底发生了什么以及客户端/测试项目是如何编译的。
这是我发现的,我们有以下文件夹结构:
由于 b.sln 已过时且未使用,它位于 MyFolder -> Service 文件夹(与 service.csproj 文件相同的文件夹)。(在我的新公司中,开发人员对此非常不满,以至于他们不会删除未使用的文件,而是继续将其重命名为 _old。)
devnenv.com 以某种方式从 b.sln 文件中获取项目文件并编译它们。我删除了 b.sln 文件,脚本编译 service.csproj 没有任何问题。但是当 service.csproj 和 b.sln 在同一个文件夹中时,visual studio (devenv.com) 尝试编译其中提到的所有 3 个项目解决方案文件。
有人对正在发生的事情有任何想法吗?
x86 - 从命令行使用 devenv.exe 并指定平台
我正在尝试使用命令行中的 devenv.exe 编译 Visual Studio 解决方案。我可以让它工作,但解决方案中的所有项目都是为 AnyCPU 编译的,我希望它们为 x86 编译。所有项目的调试和发布配置都设置为 x86。
当我从 IDE 中编译时,它工作正常。但是当我尝试从命令行构建解决方案时,它总是为 AnyCPU 构建所有项目。有没有办法让 devenv.exe 只在 x86 中构建?
我们正在使用 Visual Studio 2012
visual-studio-2010 - 如果我提供完整路径,devenv 仅加载解决方案
我有一个文件夹 c:\TestSolution,其中包含一个 VS2010 解决方案 TestSolution.sln。
如果我在命令行上(已经运行了适当的 vcvars.bat 文件),并且我输入C:\TestSolution>devenv TestSolution.sln
了以下弹出窗口:
但是,如果我提供它正确加载的完整路径。例如C:\TestSolution>devenv c:\TestSolution\TestSolution.sln
作品。
在以前的工作环境中,我不必提供完整路径,所以我不确定发生了什么。
有任何想法吗?
visual-studio - vs2012 不会将 /projectconfig 传递给依赖项?
TLDR;devenv 似乎使用 GUI 中最后选择的任何配置/平台来构建依赖关系,而不是 /projectconfig 所说的。想法?
我有一个构建调试和发布、win32 和 x64 的 Visual Studio 2012 解决方案。它有两个项目
- "common" 生成一个静态库
- "foo" 生成一个 dll,并与 common.lib 链接
两个项目都输出到 $(SolutionDir)$(Configuration)_$(Platform),例如,myTest/Release_Win32
这样我就可以轻松地在配置之间进行交换。
该项目foo
依赖于common
,当我foo
在完整的 GUI 中显式构建时,它会正确构建common
,适用于我当前定位的任何配置/平台。
但是,如果我运行命令行
devenv.exe myTest/myTest.sln /project foo /projectconfig "Release|x64" /build
common.lib
然后它会失败,因为它在链接时找不到。确实,没有myTest/Release_x64/common.lib
,但有myTest/Debug_Win32/common.lib
。我可以验证这是由 devenv 命令引起的,它在删除所有目录后重新出现。
看来 devenv 正在尝试构建common
为依赖项,但未能指定 projectconfig 并回退到默认的 Debug & Win32。
common
我可以通过在尝试构建之前手动构建来解决这个问题foo
,但我更希望它自动发生。有没有其他人遇到过这种情况,或者有解决方法/解决方案?
这是一个演示问题的解决方案,以及我是如何创建它的:
http://beanalby.net/stackExchange/vsDepends.zip
- 用新的解决方案创建了“common”作为静态库
- 在该解决方案中创建“foo”作为控制台应用程序
- 在 foo 上的所有配置的链接器/输入下添加 $(OutDir)common.lib 作为附加依赖项
- 标记为“foo”取决于“common”
- 退出视觉工作室,保存项目和解决方案
运行devenv myTest/myTest.sln /project foo /projectconfig "Release|x64" /build
产生:
如果您打开 Visual Studio,将平台/配置更改为其他任何内容,然后退出(它不会要求保存),那么common
将构建为那个平台/配置。
VS2012 x64 Cross Tools Command Prompt
和都会发生这种情况VS2012 x86 Native Tools Command Prompt
。
asp.net - 通过 devenv.exe 构建站点有效,msbuild 失败
我正在使用 TFS2012 进行 VS2012 Update 3。
我使用 devenv 和 msbuild 构建了相同的解决方案。当我进入网站项目时,devenv 不会报告任何错误,但 msbuild 会反复报告。两者的日志示例:
开发者:
微软构建:
关于为什么 Devenv 继续但 MSBuild 立即失败的任何想法?
jenkins - devenv.exe 通过詹金的工作执行不起作用
我正在尝试通过 Jenkins 中的 Windows 批处理命令插件执行 devenv.exe,但它继续执行并且无法启动应用程序。
控制台输出:
c# - 强制项目和解决方案从 VS2010 升级到 VS2013,而不仅仅是解决方案文件
我正在尝试将解决方案升级到 Visual Studio 2013 并以 .NET 4.5 为目标。
我知道定位 .NET 4.5 就像右键单击每个解决方案中的每个项目并将它们更改为 4.5 一样简单。但我也希望我们的解决方案在 VS 2013 中默认打开,即使有人在他们的机器上有其他版本。我也不想为我们拥有的每个解决方案中的每个项目都这样做。
我尝试过的事情:
- 删除我要升级的每个解决方案的 .suo 文件,然后在 VS2013 中打开它们,以便它要求我更新我的解决方案。(它不问)
- 运行
devenv.exe "C:\my-solution.sln" /upgrade
。它所做的只是说:
此项目/解决方案不需要迁移。它会在没有修改的情况下打开。
有没有办法强制将所有解决方案/项目更新到 Visual Studio 2013?
编辑:@SLaks 评论适用于 .sln 文件,但我仍然在该解决方案中有许多 .csproj 文件,这些文件本身使用不同版本的 Visual Studio 打开。如果有一个解决方案不需要我在记事本中打开每个解决方案文件并更改一个字符,那就太好了。
visual-studio-2010 - 使用 DevEnv.exe 的非并发构建
我需要使用 devenv.exe 来构建我们的 VS2010 项目。我需要项目一次构建 1 个,因为同时运行多个构建会导致问题。我在工具 -> 选项 -> 项目和解决方案 -> 构建和运行中将并发构建的数量设置为 1。当我直接从 VS2010 执行构建时,一切正常。
但是当我从命令行运行它时
它开始并行构建项目。
在使用命令行时,我是否缺少一个标志或设置来让这些构建一次运行 1?
编辑:应该注意的是我在 Jenkins 中运行这个构建。在命令提示符下运行上述命令时,它似乎工作正常。但是在 Jenkins 中运行命令会导致构建并行执行。也许需要设置一些环境变量?