我有3个项目VS2010溶液:添加本地DLL路径管理控制台应用程序
- 使用本机DLL
- A A本机(C++)DLL
- 甲管理(C#)DLL (C#)控制台应用程序使用托管DLL
我可以将受管DLL设置为对控制台应用程序的引用,但我无法将本机DLL设置为这样的引用。
要在VS2010中运行控制台应用程序而不发生崩溃,我必须将本机DLL复制到.exe文件夹。
我有2个问题:
- 我如何能在本机DLL添加到DLL搜索路径,所以我没有做手动复制?
- 我怎样才能做到这一点,使每个配置(调试/发布)采取正确的DLL版本?
更多详细的解决方案 - 由于Tilak's answer:
以下是基于以下Tilak's reply更多新手友好的细节:
- 添加本地DLL的文件(添加现有文件...)来受管控制台项目。
- 在项目属性窗格中,将“构建操作”设置为“内容”和“复制到输出目录”,将其设置为“复制如果更新”或“始终复制”。
- 关闭解决方案或VS2010。
- 在文本编辑器中打开托管项目
.csproj
文件,并找到<ItemGroup>
,其中包含本机DLL名称(这是我们在步骤1中添加文件时创建的)。我们会让一些小的变化有:- 对于调试版本,而不是
<ItemGroup>
使用<ItemGroup Condition="'$(DefineConstants)' == 'DEBUG;TRACE' ">
和进入路径调试 DLL。 - 重复发布版本的条目,而不是
<ItemGroup>
使用<ItemGroup Condition="'$(DefineConstants)' != 'DEBUG;TRACE' ">
并输入版本 DLL的路径。
- 对于调试版本,而不是
- 保存文件并重新打开VS2010。现在依赖应该到位。
我会将本地DLL作为文件放入托管DLL中,并将其属性设置为“内容”和“复制到输出目录”。 – vcsjones
你可以更具体地说明如何做到这一点(也许改为答案)?另外,这个方法可以用来区分Debug和Release版本吗? –