gpt4 book ai didi

visual-studio - 如何使Visual Studios构建系统了解托管dll的非托管依赖关系?

转载 作者:行者123 更新时间:2023-12-04 04:23:27 26 4
gpt4 key购买 nike

生成托管代码时,Visual Studio正确(递归)将引用的托管项目的dll复制到正在生成的项目的输出文件夹中。

但是,如果这些引用之一是依赖于非托管dll的托管DLL,则即使这些非托管DLL在相同解决方案中的对应项目并被列为托管DLL的依赖项,也不会将这些非托管DLL复制到输出文件夹中。

我意识到可以通过让所有项目使用相同的输出文件夹来解决此问题。我们已经对大多数项目执行了此操作,但是我们希望将单元测试输出文件夹分开放置,这会导致使用具有非托管依赖项的托管Dll的单元测试出现上述问题。

我们现在使用的解决方案是一个预构建事件,用于复制必要的DLL,但这很浪费时间,而且容易出错,因为需要为每个使用托管DLL的项目重复此操作。

因此,我想知道是否有一种方法可以使构建系统了解,无论何时决定复制托管DLL,它都应始终复制托管DLL的非托管依赖项?

最佳答案

一种解决方法似乎是将另一个节点添加到托管DLL项目中,命名非托管DLL,并将Build Action设置为“None”,然后将Copy to Output Directory设置为“Copy if Newer”。

编辑:对于建立一个C++/CLR项目,我认为这会工作:

添加节点,并将其构建工具设置为自定义构建工具。然后,在“定制构建步骤”页面中,将命令设置为复制$(InputPath)$(OutDir),将输出设置为 $(OutDir)\$(InputFileName)。看起来应该可以。

关于visual-studio - 如何使Visual Studios构建系统了解托管dll的非托管依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com