问题标签 [vcxproj]
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 - CMAKE在一个解决方案中构建不同的平台
你好。
从 cmake 我用 x64 生成器生成 Visual Studio(2013) 解决方案,以及只有 win32 平台的include_external_msproject 。
当我打开解决方案时,默认情况下,我的 win32 解决方案从构建中排除(字段构建不选中标记)。
问题,我如何从 cmake 为 win32 项目设置强制构建?
例如:
.net - 如何在 dotnet core 本地制作本地 nuget 包并在本地解决方案中引用它们
我们有许多库,它们分布在不同的解决方案中(关注点分离)。每次签入时都会构建新的 nuget 包,并且依赖于这些其他包的解决方案可以更新它们的引用。
在一个理想的世界里,一切都应该进行单元测试,CI 测试的原因,但现实生活中的命中,并且在某些时候一些难以重现的极端情况错误表面,并且需要一些本地调试。
为了避免做我们都在某个小项目上尝试过的事情,检查 N 次小修复,结果证明不是修复:) 并获得一个新的构建是痛苦和耗时的。
在 dotnet core 之前,我曾经在引用解决方案中调试这些,只需添加对本地构建 dll 的本地引用并在提交之前修复问题。使用 dotnet 核心,这已被证明是不可能的,因为所有东西都需要包装在一个 nupkg 中。
我还需要一个简单的工作流程/流程来处理 dotnet core 中的这些情况吗?
c++ - 编辑一个配置的预编译头设置会影响另一个
我们在工作中使用 Visual Studio 2013,我最近遇到了一个我以前从未见过的问题。
我们有一个在 _i.c 文件中包含一些 COM 定义的项目。问题是当我们向项目和解决方案添加两个配置时,这些配置不是独立的,它们似乎是绑定的,但仅在预编译的标头设置中,这些设置旨在覆盖该文件的项目行为。
原来Project和Solution里面有两个配置,Debug和Release。
这些是 MCBS 版本。最近我们需要额外的Unicode版本,所以现在有4个配置Debug,Release,Debug-UNICODE,Release-UNICODE。
C++ 预编译头文件的全局项目设置是“使用 (/Yu)”,这对于原始调试和发布配置都是如此(现在也是新配置)
然后 _i.c 文件再次具有“不使用预编译头文件”的特定设置,这在原始调试和发布配置中是正确的。
现在我们已经添加了另外两个配置,当您尝试构建它们时,当构建到达 _i.c 文件时,您要么被告知 a) 预编译的头文件来自先前版本的编译器,或者 b)编译器找不到 stdafx.h
但是,根据该文件的项目设置(由 IDE 提供),该文件不应该使用预编译的头文件,但它正在尝试这样做。
值得注意的是,当您更改 Release Configuration 下的 files 设置时,您会注意到 Release-UNICODE 现在也更改为相同的设置(反之亦然)。Debug 和 Debug-UNICODE 也是如此。
[X]-UNICODE 配置是作为 [X] 配置的副本创建的,但它们并不打算共享。除预编译头文件之外的所有其他设置都保持独立。
此外,如果您查看 _i.c 文件下保存的项目,它实际上并没有列出所有配置
如果忽略 IDE,项目正在根据 .vcxproj 文件中的内容正确构建,问题是 IDE 无法正确写入
visual-studio-extensions - .xproj 不抛出 ItemAdded 事件
每次将项目添加到项目中时,我都希望我的扩展程序执行某些操作。这适用于普通项目,或者有一些魔法(参见此处),适用于项目类型“网站”。但我不能让它与.xproj一起工作。
这是我当前访问 ItemAdded 事件的代码(已缩短)
有谁知道在 .xproj 项目类型的情况下如何访问 ItemAdded 事件?
编辑:编辑代码;这些变量都是类字段,不会被垃圾收集,就像其他项目类型一样,事件会被正确触发,只是在 .xproj 的情况下不会。
visual-studio - 我所有的 Visual Studio 2013 项目的通用 vcxproj.filters
是否可以为所有 Visual Studio C/C++ 项目只创建一个 vcxproj.filters 文件?
我手动创建了许多 vcxproj 文件,其中我将一些公共属性提取到了我在手动创建的 vcxproj 文件中导入的几个其他项目文件中。现在我将这些 vcxproj 文件添加到解决方案中。由于没有过滤器文件,当我在解决方案中看到时,这些文件没有组织在项目下。我想为所有项目创建一个通用的 *.vcxproj.filters,如下所示。甚至有可能这样做吗?
visual-studio - 将属性传递给 MSBUILD 任务
我正在尝试为所有具有属性的项目文件调用 msbuild 任务。我使用硬编码配置和平台组合调用了 msbuild 任务四次。就像是
但我想将此属性作为 ItemGroup 提供,如下所示
代码示例 MyProject.vcxproj
该项目文件包括 BuildAllConfiguration.vcxproj
该项目将调用 MyProject.vcxproj,其目标构建和属性未得到良好格式。我的期望是属性如下
相反,属性传递如下
c# - 我需要使用 c# 以编程方式获取 vcxproj 的输出文件
我知道我可以通过右键单击一个项目并检查它的属性来查看属性、TargetPath、TargetDir、TargetFileName,但我需要以编程方式执行此操作。任何帮助将不胜感激。
c# - Microsoft.Build.dll 中出现了“Microsoft.Build.Exceptions.InvalidProjectFileException”类型的第一次机会异常
我正在尝试从 vcxproj 项目中提取各种属性。这些属性包括 TargetName 和 TargetExtension。当我使用这个扩展遍历所有项目类型时,我正在创建一个临时项目并从这个项目中提取质量,如下所示:
一些项目通过了中断点(如上所述),而一些项目没有通过并输出错误
Microsoft.Build.dll 中出现 Microsoft.Build.Exceptions.InvalidProjectFileException' 类型的第一次机会异常
我做了一些挖掘,发现对于一些项目来说,这条线
执行得很好,有些则没有。换句话说Microsoft.Cpp.Default.props
,有时可以定位,有时则不能。任何指导将不胜感激。
c++ - 在 Win 7 SP 1 中创建 exe vcxproj:过程入口点无法在动态链接库 KERNAL32.dll 中找到
“无法在动态链接库 KERNAL32.dll 中找到过程入口点 CreateFile2”
我们一直在使用一个新系统,由 waf 构建的 C++ 到 Visual Studio 2013 构建(vcxproj),已经转换了几个项目,但它们都构建为 dll。尝试构建外部 exe 文件项目有点困难。起初它甚至没有将其视为一个 win32 应用程序(尽管我是在 x64 中构建的),但我补充说:
这似乎解决了这个问题。现在我得到了上述错误。
我正在使用一个旧的 3rd 方插件,它有一个使用 CreateFile2 的逻辑路径。我的机器上已经安装了 windows 8.1 套件(出于某种原因),它正在尝试使用其中的 windows.h。我尝试将 Windows SDK\7.1A 包含在内,它的 windows.h 正确定义了它,但 sal_supp.h 定义了 VS 2013 的 sal.h 也定义的宏,这是一个不起作用的解决方案。
我查看了其他问题,但它们似乎都是 Win XP 的问题,在 Windows 7 上没有完全适合的问题。由于这涉及 Kernel32,因此大多数其他问题似乎并不涉及系统 dll 或创建您自己的 vcxproj。当我在 waf 中构建它时,这一切都奏效了,所以我知道安装的任何东西实际上都没有任何问题。
我试过的东西:
我知道,不是链接器错误,但值得一试。
c# - 将属性 (name=value) 从 MSBuild 项目写入文件
对于 MSBuild 项目,我想输出某种.config
文件,该文件将沿生成的二进制文件重新分发,以便二进制文件的用户可以通过编程方式检查构建时使用的参数。
输出文件格式:
理想情况下,要写入的属性列表将只包含它们的名称。也许像:
作为MyExposedDictionary
赋予某些DotConfigFileWriter
任务的参数,以及目标文件的路径。
我找到了几种将值写入文件的方法,包括其中包含一些C# 代码的子目标,但我是 MSBuild 的新手,我不确定如何将这些要求合并到一个文件Target
中以使其重新-可用。