问题标签 [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-2012 - devenv.exe - 应用程序错误
我正在尝试安装 Visual Studio Ultimate 2012,但出现以下错误。
单击其中任何一个都将关闭 Visual Studio,我无法继续前进。
我尝试重新启动系统,卸载并重新安装 VS 包。他们俩都没有改变错误。
build - VS2012 x64 跨工具命令提示符
我有一个包含许多项目的解决方案,目前需要我首先以管理员身份运行 vs2012 x64 交叉工具命令提示符。然后我加载 DevEnv 并从那里构建项目。
如何使用 TFS 构建环境执行此操作?- 布鲁斯
visual-studio-2012 - Visual Studio 2012 生成输出:任务已取消
我的团队有一台运行 Windows Server 2008 R2 Enterprise SP1 的虚拟机,我们用它来运行我们的夜间构建。我们正在使用 Visual Studio 2012 并通过从 C# 程序通过 System.Diagnostics.Process.Start 运行 devenv.exe 来启动构建过程。
最近我们一直在构建失败,输出日志看起来像
有时可能只有一两个项目,有时超过 100 个。FWIW,我们构建了三个解决方案,第一个失败了。接下来的两个得到正确构建。
通过查找有关该问题的信息,我知道输出是由于异常 System.Threading.Tasks.TaskCanceledException 在 VS 2012 中的某个地方被捕获。除此之外,我不知道发生了什么。我怀疑它可能与并行项目构建有关。到目前为止,我只看到了与此问题相关的另一篇文章 - http://social.msdn.microsoft.com/Forums/en-US/306f5a10-db72-4992-9d49-20ad1577ed05/visual-studio-2013-error -a-task-was-canceled?forum=visualstudiogeneral “答案”真的不是答案....
任何帮助或见解将不胜感激。
msbuild - 为什么自上次构建解决方案以来没有任何变化时,msbuild 如此缓慢?
我有一个包含 109 个项目的解决方案。混合所有 - .NET、Silverlight、MVC、Web 应用程序、控制台应用程序。
现在我使用 msbuild 在控制台上构建它。这需要一些时间。可以理解 - 很多项目,很多文件。
但是当我在第一次之后第二次构建它时——即使实际上没有构建任何东西,它仍然需要很多时间——diag msbuild 日志证实了这一点。
例如,这里是第一个完整构建的任务性能摘要:
msbuild 声明Time Elapsed 00:08:39.44
美好的。现在我再次运行相同的命令行并得到以下信息:
msbuild 声称Time Elapsed 00:05:25.70
。
这提出了以下问题:
- 为什么
ResolveAssemblyReference
在第二次构建中花费这么多时间?在第一次构建中创建的所有缓存文件仍然存在。什么也没有变。那么为什么它与以前几乎相同 - 97 秒对 106 秒? - 为什么
ValidateXaml
并且CompileXaml
正在运行?我的意思是自完整构建以来没有任何改变!
现在我重复相同的实验,但这次我devenv
在命令行上构建而不是msbuild
. 与 msbuild 一样,不使用并行构建,并且日志级别为 diag。
devenv
最后没有提供这么好的总结,它必须从每个项目的总结中手动聚合。
结果让我吃惊。我使用以下 powershell 脚本来汇总经过的时间:
devenv
在命令行上从完全相同的立场构建完全相同的解决方案需要00:06:10.9000000
第一个构建和00:00:03.1000000
第二个构建。只需3秒!!!
我还编写了一个 powershell 脚本来汇总统计信息:
在第一个(完整)构建的日志上运行它会产生以下输出:
现在,对于第二次构建,结果是:
我们在这里谈论完全相同的解决方案!
最后,这是我使用该解决方案构建的脚本:
构建:
开发环境:
我的测试告诉我这msbuild
是一个垃圾,我不应该在命令行上使用它来构建我的 C# 解决方案。https://connect.microsoft.com/VisualStudio/feedback/details/586358/msbuild-ignores-projectsection-projectdependencies-in-sln-file-and-attempts-to-build-projects-in-wrong-order添加到此感觉。
但也许我毕竟错了,一个简单的调整将使 msbuild 在第二次构建时像devenv
现在一样高效。
有什么想法可以让 msbuild 在第二次构建中表现良好吗?
编辑 1
该CompileXaml
任务是在C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.Common.targetsMarkupCompilePass1
中找到的目标的一部分:
正如我们所看到的 - 没有输入也没有输出。
接下来,第二次构建的 diag msbuild 日志不包含任何可疑词,例如“rebuilding”。
最后,我想注意到 msbuild 和 devenv 都是在完全相同的情况下执行的,并且没有一个使用多线程构建。然而差异是巨大的——超过 5 分钟(msbuild)与 3 秒(devenv,命令行)。
对我来说仍然是一个完全的谜。
编辑 2
我现在更了解devenv构建是如何工作的。它使用启发式方法来确定当前项目是否必须首先移交给 msbuild。此启发式默认启用,但可以通过将DisableFastUpToDateCheck
msbuild 属性设置为 来禁用true
。
现在,命令行 devenv 构建实际上需要 3 秒以上才能确定是否需要运行 msbuild。总而言之,对于像我这样的解决方案,可能需要 20 秒甚至 30 秒才能确定不需要将任何内容传递给 msbuild。
这种启发式方法是造成这种巨大时间差异的唯一原因。我猜 Visual Studio 团队认识到标准构建脚本的质量很差(其中像 MarkupCompilePass1 这样的任务不是由输入和输出驱动的),并决定首先想出一种跳过 msbuild 的方法。
但是有一个问题——启发式只检查 csproj 文件,没有检查导入的目标文件。此外,它对隐式依赖一无所知——比如从其他 TypeScript 文件引用的 TypeScript 文件。因此,如果您的 TypeScript 文件引用了属于不同项目且未从项目文件显式链接的其他 TypeScript 文件 - 启发式不知道它们,您最好拥有DisableFastUpToDateCheck = true
. 构建会更慢,但至少它是正确的。
底线 - 我不知道如何修复 msbuild,显然 devenv 人也不知道。这似乎是他们发明启发式的原因。
visual-studio - 为什么 Visual Studio 认为 .csproj.user 是解决方案的依赖项?
我已经完全在 IDE 中构建了我的解决方案。关闭解决方案,然后重新打开它。然后我再次构建它并在 diag 构建日志中看到以下内容:
请再说一遍?为什么?如何?做什么的?
我的问题是如何防止它。谢谢。
附言
我正在使用 VS 2012 构建 C#、Silverlight、Web 应用程序。所有类型都可以在一个解决方案中找到。这个问题与我在同一领域的其他两个问题有关 -为什么自上次构建解决方案以来没有任何变化时,msbuild 如此缓慢?并交替使用 msbuild 和 devenv 构建相同的解决方案
编辑
这是 .csproj.user 文件的内容:
请注意,我没有更改任何配置选项。只需打开、关闭、构建解决方案。
msbuild - devenv 总是重建我的项目,因为打字稿文件比 pdb 文件新
我有一个带有打字稿的项目。devenv 不断重建这个项目。诊断输出包含以下行:
那么,我该如何解决这个问题呢?上述打字稿文件确实比 PDB 更新。但是 PDB 不是打字稿编译的输出!!!
这是我编译打字稿文件的方法:
该项目指定TypeScriptCompile
项目组中的打字稿文件,例如:
当然,仅@(OutputJavaScripts)
列出预期的.js
文件。那里没有 PDB 文件。
那么 devenv 是如何将 typescript 文件与 PDB 文件匹配的呢?我如何解决它?
编辑 1
我想澄清一下。它实际上并没有重新编译 typescript 或 C# 文件(这是它第一次重新编译 typescript 文件,但仅此而已)。它开始构建,因为 typescript 比 PDB 更新,但随后它认识到 PDB 依赖项实际上没有改变。javascript 文件也是如此——它们都是最新的。所以实际上什么都没有重建,但是为什么要首先进入构建序列!
c++ - 从 Jenkins 的 devenv 中分离控制台输出(逐个项目)
我让 Jenkins 启动并运行一项工作,使用devenv
.
控制台日志输出看起来像正常的 VS 输出(更改示例):
是否有可能在 Jenkins 中分离日志(逐个项目)。或者也许是一些插件来跟踪每个项目构建日志。因为当构建失败时,很难按照日志树来查找所有项目事件。
silverlight - 为什么不同时构建 Silverlight 项目?
我有很多 Silverlight 项目的解决方案。我注意到一件奇怪的事情——当我在 Visual Studio IDE 中构建最大并发构建数设置为 8 时,Silverlight 项目是按顺序构建的。
其他项目(非 Silverlight)是并行构建的。
所以,这里是构建日志:
- 当 Max Concurrent Builds 为 1 - http://pastebin.com/raw.php?i=ZvguRmda
- 当它是 8 - http://pastebin.com/raw.php?i=FGFHt54f
为什么 Silverlight 构建不交错?
c# - Debug|Trace.WriteLine 来自 Visual Studio 中的 C# 插件 - 通过 ConsoleTraceListener 显示
我修改了一个 C# 插件,它是 Visual Studio 2.0 的 Python 工具的一部分,并希望在代码中查看 Debug.WriteLine 和 Trace.WriteLine 语句的输出。请注意,该插件用于 Visual Studio 2013 本身,修改 python 进程的调试....
我希望我可以按照 pminaev在此处的 PTVS 讨论论坛上的devenv.exe.config
建议添加一个跟踪侦听器(将另一个 VS 附加到 VS 本身似乎很笨拙,所以我希望避免这种情况)。
我认为其他 .NET 应用程序的正确配置似乎不适用于 VS2013 本身。 我的努力记录在下面。
如果有人设法将插件调试/跟踪输出重定向到 Visual Studio 控制台(或比另一个附加的 VS 实例更方便的任何其他地方),非常感谢提示......
我的 Google-fu 出现了几个示例,基于这些示例我尝试添加...
...和...
之后启动 PTVS,没有什么可用的。无论使用哪种配置,我都会弹出一个窗口:
ActivityLog 对我来说意义不大:
当我尝试附加到远程 python 进程时,我得到另一个弹出窗口:
Google-foo 建议这是加载 .NET 版本的一些失败......?
visual-studio-2010 - 便携式 Visual Studio 2010 和 cmake
今天是个好日子,
我正在尝试执行以下操作:
1)创建便携版微软Visual Studio(vs2010 sp1)+平台SDK(winsdk 7.0a)。
2) 将这些文件放到机器上,在项目上运行 cmake 并构建项目
我假设机器已将 .net 框架 4.0、VS 2010 win32/x64 可再发行组件安装到默认位置。
VS 2010 文件:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
我把它们放到d:\distr\msvc100sp1
目录下。
WinSDK 文件:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
我把它们放到d:\distr\WinSDK\7.0a
目录下
我在做任何事情之前运行这个脚本 - 如果调用了 vcvars(在本例中为 amd64),它会重新创建环境:
但是运行 devenv(它在上面脚本之后的路径上)我收到了这个错误:
我认为 cmake 可以弄清楚如何处理编译器,但它抱怨编译器版本检查:
输出文件中存在关于缺少组件的相同错误。
想要的东西甚至可能吗?可能缺少哪些组件?
我想要的是执行我想要的,然后自动清理机器,即使它需要更改注册表项。