类库的编译问题

biweilun 2009-05-31 09:09:45
加精
创建了一个类库,UserInfo.cs

代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model
{
public class UserInfo
{
public virtual int ID { get; set; }
public virtual string UserID { get; set; }
public virtual string UserName { get; set; }
}
}


我想动态编译它

在另外一个WinForm中,
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.IO;

CSharpCodeProvider objCSharpCodePrivoder=new CSharpCodeProvider();
CompilerParameters paras = new CompilerParameters();
paras.GenerateExecutable = false; //编译成exe还是dll
//paras.ReferencedAssemblies.Add("System.dll");
paras.GenerateInMemory = false; //是否写入内存,不写入内存就写入磁盘
paras.OutputAssembly = "C:\\UserInfo.dll"; //输出路径
StreamReader sr = new StreamReader(@"C:\UserInfo.cs");
String txtStr = sr.ReadToEnd();

CompilerResults result = objCSharpCodePrivoder.CompileAssemblyFromSource(paras, txtStr);



为什么编译不成功?result的返回值错误:
未能加载文件或程序集“file:///C:\UserInfo.dll”或它的某一个依赖项。系统找不到指定的文件。
^

怎么回事?UserInfo.dll不是应该生成出来的么?
...全文
1782 63 打赏 收藏 转发到动态 举报
写回复
用AI写文章
63 条回复
切换为时间正序
请发表友善的回复…
发表回复
yan_yan_83 2012-02-22
  • 打赏
  • 举报
回复
真是不错呀
dfzone 2011-07-19
  • 打赏
  • 举报
回复
好贴一个~
zhouzhixiang822 2010-07-01
  • 打赏
  • 举报
回复
study
meceky 2010-06-30
  • 打赏
  • 举报
回复
这个还没有研究过,好好看看!学习了!
jwangyx 2009-06-03
  • 打赏
  • 举报
回复
学习中
Dhoopu 2009-06-03
  • 打赏
  • 举报
回复
反射
越过越咸 2009-06-03
  • 打赏
  • 举报
回复
C#动态执行代码收藏
Meishawk 2009-06-03
  • 打赏
  • 举报
回复
UP
济南大飞哥 2009-06-02
  • 打赏
  • 举报
回复
添加新类,把代码copy过去?
在原来的项目里编译,生成后把dll拿过来?
biweilun 2009-06-02
  • 打赏
  • 举报
回复
再说点问题

各位有经验的能不能给点动态编译的资料我去学习下?网上搜的那些文章大部分都看过了。比如编译出来的dll的版本号1.0.0怎么设置啊?
CompilerParameters一些有用的设置什么的,学习下?

还有就是VS2008用3.5的语法,可不可以弄出2.0的.NetFrameWork的"通用"版本?因为现在安装3.5的机器不多,虽然我机上是3.5的运行库.
客户一般都是安装2.0的
kangbo818 2009-06-02
  • 打赏
  • 举报
回复
都是人









才那
ProjectDD 2009-06-02
  • 打赏
  • 举报
回复
怎么不能成功 我原来 经常做这种
SlaughtChen 2009-06-02
  • 打赏
  • 举报
回复
学习了
我姓区不姓区 2009-06-02
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 biweilun 的回复:]
oj用的是2008版的VS吧?2005的中,
CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider(dic);

这行会出错,CSharpCodeProvider不支持一个参数的重载,我在VS2008下则可以

各位有经验的能不能给点动态编译的资料我去学习下?网上搜的那些文章大部分都看过了。比如编译出来的dll的版本号1.0.0怎么设置啊?
CompilerParameters一些有用的设置什么的,学习下
[/Quote]
我的确是在vs2008中通过的,如果用vs2005编译C#3.0以上语法不太可能吧
yanm7788 2009-06-02
  • 打赏
  • 举报
回复
Mark.
悔说话的哑巴 2009-06-02
  • 打赏
  • 举报
回复
好久不见空军大哥哈。
netstray 2009-06-02
  • 打赏
  • 举报
回复
动态编译,没用过哈
wzuomin 2009-06-02
  • 打赏
  • 举报
回复
太好了,头一次接触动态编译的东西,呵呵。
lsd123 2009-06-02
  • 打赏
  • 举报
回复
.
xiankolely 2009-06-02
  • 打赏
  • 举报
回复
dd
加载更多回复(35)

110,556

社区成员

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

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

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