在DOS环境中,如何通过CSC命令来解决这样的一个问题:访问任意一个目录中dll文件中的类。

zhangbbs 2012-06-12 11:10:23
我搞了几天都没找到答案,所以来问问!
下面是问题的详细描述:

1 D:Program目录下有两个同一级别的子目录:HelloNS,TestNS。在相应目录下有两个CS文件:Hello.cs ,Test.cs。如下图所示:

D:\Program---HelloNS---Hello.cs
|
|--TestNS---Test.cs

2 Hello.cs的源代码很简单:
//Hello.cs
using System;
namespace HelloNS{
public class Hello{
public String GetHelloWorld(){
return "hello world!";
}
}
}
3 Test.cs的源代码也很简单:访问上述Hello.cs中类Hello的方法GetHelloWorld()。
//Test.cs
using System;
using HelloNS;
namespace TestNS{
public class Test{
public static void Main(string[] args){
Hello hello=new Hello();
String str=hello.GetHelloWorld();
Console.Write(str);
}
}
}

4 好了,现在分别编译:
(1)首先编译Hello.cs,产生Hello.dll文件:
d:\Program\HelloNS>csc /t:library Hello.cs
上述命令会在d:\Program\HelloNS目录中产生Hello.dll文件
(2)然后在d:\Program\TestNS目录中编译产生Test.exe文件:
d:\Program\TestNS>csc /r:"../Hello/Hello.dll" Test.cs
上述命令会在d:\Program\TestNS目录中产生Test.exe文件

5 但是问题来了:运行上述d:\Program\TestNS目录中的Test.exe文件,产生错误:
d:\Program\TestNS>Test.exe 报错如下:
“Unhandled Exception :System.IO.FileNotFoundException:Could not load file or assembly 'Hello,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null' or one of its dependencies.系统找不到指定的文件。
at TestNS.Test.Main(String[] args).

-------------------------------------------------------

(注意上述命令都是在DOS环境中,不是在Visual Studio 做,当然在Visual Studio中通过引用是可以完成的。同时也要注意不要把Hello.dll拷贝到TestNS目录中 ,当然把Hello.dll拷贝到TestNS 目录中也是能运行成功的,但我不想这样。)

(其实归纳下来就是:在DOS环境中,如何通过CSC命令来解决这样的一个问题:访问任意一个目录中dll文件中的类)
-------------------------------------------------------










...全文
157 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangbbs 2012-09-01
  • 打赏
  • 举报
回复
结题,无解!
机器人 2012-06-13
  • 打赏
  • 举报
回复
查查 devenv.exe
threenewbee 2012-06-12
  • 打赏
  • 举报
回复
你可以试试我说的办法。
zhangbbs 2012-06-12
  • 打赏
  • 举报
回复
难道没有一个人想过:不通过visual studio集成环境开发c#,asp.net软件?
zhangbbs 2012-06-12
  • 打赏
  • 举报
回复
其实我们开发JavaEE软件的时候,就只用Java,javac命令,再加上编辑器editplus,而没有用eclipse集成环境就能开发出JavaEE应用软件出来,而且速度也很快。所以我想C#,或者ASP.net项目也是可以只用csc命令和Editplus开发出相应软件出来。
  • 打赏
  • 举报
回复
csc是编译器,用它来“开发软件”,找错了对象。你可以查查它的文档,无非是各种参数的意义,最多可以定制一些自动编译脚本而已。
如果对这方面感兴趣,还可以研究一下custom build rules,只有vc++项目里有这个东东。
threenewbee 2012-06-12
  • 打赏
  • 举报
回复
我让你借助VS获得一个学习的范本。
zhangbbs 2012-06-12
  • 打赏
  • 举报
回复
其实我是不想用visual studio环境,而是改用微软提供的CSC命令或者其他命令来开发一个C#方面的软件。虽然麻烦一些,但是熟悉之后,开发软件也是很快的,而且对C#的原理能有一个根本性质的了解。
jacie0617 2012-06-12
  • 打赏
  • 举报
回复
希望http://support.microsoft.com/kb/837908/zh-cn这个能够给你些提示。
GAC;同目录;强命名+配置文件
threenewbee 2012-06-12
  • 打赏
  • 举报
回复
哥哥,那个是控制台,不是dos环境。

而且,你完全可以先在Visual Studio中生成一次,然后打开输出窗口,直接从中复制调用的命令行出来。然后再在控制台中照着调用就可以了。
熙风 2012-06-12
  • 打赏
  • 举报
回复


不懂,,,顶。。。。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧