您的位置:首页 > 编程语言 > C#

C# 添加引用问题(转)

2014-11-25 14:27 302 查看
手头上一个项目使用了混合语言编程:C# 和C++,由 C++ 输出 DLL 供 C# 使用,但是遇到一个问题。在 C# 中要添加 C++ 的 DLL 引用,通过菜单“引用”->“添加引用”->“浏览”找到 C++ 的 DLL,正确地添加了进来;但是项目的生成方式有两种:Debug 模式和 Release 模式,上述方法添加的 DLL 路径是静态的,即只能是 Debug 或 Release 某一种生成版本的,如果改变解决方案的生成方式,就要每次手动更改引用,非常不方便。于是 google 之,找到 CompilerParameters::ReferencedAssemblies.Add
方法,貌似可以在代码中添加引用,而不是通过菜单方式,然后使用

#ifdef _DEBUG

添加Debug版DLL引用

#else

添加Release版DLL引用

#endif

,但把上述代码放在何处是个问题,最后发现此路不通;继续 google,发现了解决办法,特记录在此:

1. 通过菜单“引用”->“添加引用”->“项目”,而不是“浏览”,这样DLL引用的版本就能随解决方案生成方式的改变而自动改变,即DLL路径是非静态的。

2. 由于添加的引用实际上是记录在项目文件 *.csproj 中,所以可以通过改变此文件中的内容来改变引用路径。首先找到 DLL 引用位置,类似于 <Reference Include="…,<HintPath>..\Debug\××××.dll</HintPath>,然后将 Debug (或Release)修改为 $(Configuration) ,即解决方案的生成方式。

3. 此方法要用到命令行,较为麻烦,见
http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/5d97d887-c16a-4488-a438-d49945c04e06/
4. 另见
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/faa47a6d-3f32-45a5-9865-458fc9486de9/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: