我有一个包含4个项目和24个配置的C++解决方案。该项目为cryptest
,cryptlib
,cryptdll
和dlltest
。然后是x86,x64,调试,发布,DLL导出和DLL导入的部分交叉产品。如何控制批量生成的顺序→全部生成
有一种不太明显的依赖关系,我似乎无法在UI下表示或手动修改项目文件。该依赖性是所有的DLL相关项目取决于cryptest, Release Win32
。
的Visual Studio可以让我们通过选择构建菜单生成所有配置,然后批生成...→全选→生成。当我执行建立所有,建立了第一个配置是:
------ Build started: Project: cryptlib, Configuration: DLL-Import Debug x64 ------
Performing Custom Build Step
Assembling: c:\Documents and Settings\cryptopp-5.6.3\x64masm.asm
Performing Custom Build Step
Compiling...
pch.cpp
...
以上可以看出,机械选择cryptlib, DLL-Import Debug x64
作为其首选。我想下面的命令:
cryptlib, Release Win32
cryptest, Release Win32
- 不要在意其余22 ....
问题是我不能告诉Visual Studio,全部 Win32和x64 DLL项目依赖于Win32 cryptest
。
我该如何控制订单批量生成→全部生成?
目前,我有过构建运行所有两次。
========== Build: 20 succeeded, 4 failed, 0 up-to-date, 0 skipped ==========
第二次运行结尾:与第一端
========== Build: 4 succeeded, 0 failed, 20 up-to-date, 0 skipped ==========
重新排序当溶液文件的GlobalSection(ProjectConfigurationPlatforms)
用文本编辑器(并将它们放在我想要的确切顺序)这是我遇到的那种温暖和模糊的结果。测试升级后的24个配置将建立与建立所有 Visual Studio 2005中下,但建立所有的Visual Studio 2008下不执行任何操作(从字面上看,没有什么)。
当我尝试手动建立一个项目(右键单击项目,然后构建),我得到这样一个结果:
1>------ Skipped Build: Project: cryptlib ------
1>
2>------ Skipped Build: Project: cryptest ------
2>
在没有理由或解释。它肯定会很好,如果Visual Studio provided a log file试图破译行为。
一个相关的问题是Visual Studio中选择< <一些项目>>与no declarative way to change it默认启动项目。这意味着一个特定的项目需要成为解决方案文件中列出的第一个项目,并且不能更改。
我有一个很难找到一个解决方案,友好双方的Visual Studio 2005(如何源文件分布),以及一个后Visual Studio 2010的升级(一些人如何使用它)。
我可以找到一些关于这个问题的信息,如博客中的Project settings changes with VS2010。但是如何实现如上所述的依赖关系更改并不明确,并且该博客仅适用于VS2010或更高版本。
谢谢科里。我正在通过MSDN(https://msdn.microsoft.com/en-us/library/windows/apps/jj714082%28v=vs.105%29.aspx)[通过添加为链接共享代码]是最受欢迎的)。在这种情况下,***'cryptest' ***是一个EXE,而示例共享源代码。我想这会导致,如何共享一个EXE工件,而不是源文件。 – jww
为了完整起见,***'cryptest.exe' ***需要的原因是因为32位版本的可执行文件安装了完整性指纹以检测DLL上的一些篡改。它是一个FIPS 140-2 DLL,它的一个策略要求。该要求没有其他原因存在。 – jww
你是什么意思的神器?您可以使用事前/事后构建事件来运行您想从之前构建/生成的其他项目中获取事物的任何命令。你的问题解决了吗? –