Ken*_*rey 8 c# c++ projects-and-solutions visual-studio visual-studio-2012
当项目更改时,如何强制Visual Studio 2012重建所有依赖项目?
我有两个项目:C++ DLL和C#WPF应用程序.C#项目有一个post-build命令,用于将DLL复制到Debug文件夹中.
当我修改C++项目时,DLL被重建,但C#项目不是,因此DLL不会在Debug文件夹中更新.然后,在看到更新的结果之前,我需要清理并重建解决方案.
我想告诉VS,每当我更新C++项目时,它应该重建C#项目(或者至少运行post-build命令).C#项目依赖于C++项目,但不是通过引用.
为了详细说明彼得的答案,这就是我所做的。
在解决方案资源管理器中右键单击C#项目,然后选择添加>现有项。
浏览到C ++输出文件夹,选择DLL文件,而不是使用“添加”按钮打开它,而不是单击它旁边的下拉按钮,然后选择“添加为链接”。
我最初的下一步是右键单击添加到C#项目的链接,然后选择“属性”,然后将“复制到输出目录”更改为“复制”(如果较新)。但是后来我意识到,它将复制Debug版本(因为链接指向的是该版本),而不是当前配置。因此,我将其保留在“请勿复制”中,因为命令行会自动选择正确的配置。
因此,现在C#项目具有指向C ++项目输出的链接,即使C ++项目更改,该链接也会触发重建,即使该链接与项目的输出无关。
作为记录,这是我在C#项目中的构建后命令行(foobar是C ++ DLL)。
copy "$(SolutionDir)\$(Configuration)\foobar.dll" "$(TargetDir)"
Run Code Online (Sandbox Code Playgroud)
小智 3
如果在解决方案中设置项目依赖项仅尝试将 C++ 项目中的 .dll 作为链接包含到其他项目中并没有帮助,那么它应该识别出文件已更改并应该重建项目。