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/
方法,貌似可以在代码中添加引用,而不是通过菜单方式,然后使用
#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/
相关文章推荐
- c# 添加外部程序集相对引用问题
- C# 调用jave中ajax的WebService引用后添加HTTP Header的问题
- 关于asp.net2.0中添加引用的问题
- asp.net(c#)页面加载时添加控件的属性和回车问题
- C#项目引用完全相同dll文件的问题解决方法
- C#项目引用完全相同dll文件的问题解决方法(反射)
- c#操作IIS 添加SSL出现的问题
- 编译.NET项目提示“找不到系统命名空间,请添加系统组件的引用”问题的解决方法(该组件已被该项目正确引用)
- C#中引用第三方ocx控件引发的问题以及解决办法
- c#添加引用与与using的区别
- C#中的对象(类的实例)和引用变量(引用实例的那个变量)问题讨论
- 抛砖引玉:在C#中的对象引用的问题
- asp.net(c#)页面加载时添加控件的属性和回车问题
- MySQLDriverCS.dll 添加引用(安装问题)
- asp.net(c#)页面加载时添加控件的属性和回车问题
- Sql 2005 存储过程参数【多次引用】结合C#影响输出速度问题
- 添加(地址是https协议) web引用时要注意的问题....
- asp.net(c#)页面加载时添加控件的属性和回车问题
- 关于c# 未将对象引用设置到对象实例的问题(不解。。。)是不是数据库的问题....
- c# windows应用程序或C# 控制台应用程序 添加web引用步骤