首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用不同版本的Dll并生成不同版本的Dll的最佳方法

引用不同版本的Dll并生成不同版本的Dll的最佳方法
EN

Stack Overflow用户
提问于 2022-10-21 02:01:23
回答 1查看 32关注 0票数 0

我正在做一个AutoCAD外接程序项目,它将引用AutoCAD dll.其中一个挑战是我们的笔记本电脑上有不同的CAD版本。因此,我在不同版本中有不同的解决方案,因此每个解决方案都可以在开发过程中引用其相关的DLL。

例如:

  1. 笔记本1带AutoCAD 2018年
  2. 膝上型电脑2与AutoCAD 2019

构建两个解决方案,分别是2018年的AutoCAD插件和2019年的AutoCAD插件。它们都引用了不同版本的AutoCAD动态链接库。但是,代码几乎是一样的。

引用不同的DLL并不困扰我,因为DLL不会复制到解决方案文件夹(AutoCAD需要这样做)。它将使用AutoCAD文件夹中的任何版本。例如,我在C:\Program上安装了C:\Program2018年。当AutoCAD加载插件dll时,插件dll将使用AutoCAD文件夹中相同的任何相关dll。

我希望有一个解决方案,它指的是不同版本的dll,当您构建解决方案时,您将把解决方案编译成具有不同版本名称的不同插件。

因此,例如,Visual将生成两个dll:

  1. AutoCAD插件-in 2018
  2. AutoCAD插件-in 2019

这样我就不需要在不同的解决方案中维护相同的代码。

就有可能这么做吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-21 06:31:00

你和我也有同样的情况。我所做的是使用Post生成/预构建事件将我需要的DLL版本复制到输出文件夹https://learn.microsoft.com/en-us/visualstudio/ide/reference/pre-build-event-post-build-event-command-line-dialog-box?view=vs-2022

示例:

代码语言:javascript
复制
echo $(ConfigurationName)

if "$(ConfigurationName)"=="Release" (copy $(SolutionDir)\dlls\file1.dll $(SolutionDir)bin\x86\Release\file1.dll)
if "$(ConfigurationName)"=="Any" (copy $(SolutionDir)\dlls\file2.dll $(SolutionDir)bin\x86\Release\file1.dll)

此外,还可以创建自定义生成批处理文件(.bat)。我还没有试过这个,但我看到其他项目使用它为Fortify代码扫描请求创建构建。https://learn.microsoft.com/en-us/visualstudio/ide/specifying-custom-build-events-in-visual-studio?view=vs-2022

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74148011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档