强制Visual Studio重建依赖项目

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++项目,但不是通过引用.

Ken*_*rey 5

为了详细说明彼得的答案,这就是我所做的。

在解决方案资源管理器中右键单击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 作为链接包含到其他项目中并没有帮助,那么它应该识别出文件已更改并应该重建项目。

  • “将 C++ 项目中的 .dll 作为链接包含到其他项目中”这到底是什么意思? (2认同)
  • 您可以在文本编辑器中手动编辑项目文件,并修改链接以使用 $(Configuration) 和 $(Platform) 变量,以便只需要一个链接 (2认同)