【发布时间】:2014-09-30 19:01:45
【问题描述】:
我正在处理的一个项目需要一个 .dll,它需要在运行时进行一些更改。现在我使用 Visual Studio 编译它并且工作正常,但现在我想以编程方式进行。
我目前正在使用 CSharpCodeProvider,它似乎工作得很好。但是当我检查由 Visual Studio 编译的文件和使用我的程序使用 Kdiff 编译的文件时,它们有一些细微的差别。我希望它们是相同的。
通过这样做,我已经确保使用与 Visual Studio 相同的框架,即 .NET 3.5
providerOptions.Add("CompilerVersion", "v3.5");
1.为了确保编译过程与我目前在 Visual Studio 中使用的相同,我还需要添加其他参数吗?
2.当我使用反射器反编译我以编程方式编译的 dll 时,似乎引用不包含在项目中。我通过这样做将它们添加到 dll 中。我做错了吗?
using System;
using System.Drawing;
[...]
compilerParameters.ReferencedAssemblies.Add("System.dll");
compilerParameters.ReferencedAssemblies.Add("System.Drawing.dll");
ps。我知道当我在运行时进行更改时它们不会完全相同,但现在我只是想获得完全相同的 dll。
【问题讨论】:
-
您是否考虑过使用 mono.cecil 或 postsharp?