相关疑难解决方法(0)

在应用程序中编译C#代码

我想要一些代码来编译我的TextBox中的代码(例如).我的意思是我想在运行程序后编译代码.我怎样才能做到这一点?

c# compilation c#-4.0

25
推荐指数
2
解决办法
2262
查看次数

创建文件后删除文件

所以我正在创建 dll 类型文件,运行它们,然后我想删除它们。

然而,当我尝试删除它们时,我得到一个异常,因为它声称它们仍在被另一个进程使用。

我假设用于创建文件的代码没有正确处理资源以允许删除文件,这是我创建文件的代码。

if (!Directory.Exists(PathToRobots + Generation))
{
    Directory.CreateDirectory(PathToRobots + Generation);
}

File.WriteAllText(Path.Combine(PathToRobots + Generation, NameSpace + GetRobotName() + robotNumber + ".cs"), code);


CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters()
{
    GenerateInMemory = false,
    GenerateExecutable = false, // True = EXE, False = DLL
    IncludeDebugInformation = true,
    OutputAssembly = Path.Combine(FileName + ".dll") // Compilation name
};

parameters.ReferencedAssemblies.Add(@"robocode.dll");

CompilerResults results = provider.CompileAssemblyFromSource(parameters, code);

if (results.Errors.HasErrors)
{
    StringBuilder sb = new StringBuilder();

    foreach (CompilerError error in results.Errors) …
Run Code Online (Sandbox Code Playgroud)

c# file

5
推荐指数
1
解决办法
215
查看次数

动态加载和卸载使用CSharpCodeProvider生成的dll

我有一个应用程序使用一些代码脚本在运行时生成DLL并根据需要调用它们并在我继续编码之前遇到一些问题!

是否可以在不需要时从内存中卸载它们?如果不是 - 将它们加载到单独的appdomains并使用某些ipc等调用调用会对性能产生什么影响 - 顺便说一下,这需要具有高性能/实时性

或者,如何加载生成的程序集的多个实例(当然使用不同版本的#)?我假设如果你释放所有未使用的引用,它可能会被gc/framework卸载?

还有一个Q - 在这种情况下是否会出现任何"碰撞"(不确定这是否是正确的词?)?

c# code-generation

4
推荐指数
1
解决办法
3146
查看次数

标签 统计

c# ×3

c#-4.0 ×1

code-generation ×1

compilation ×1

file ×1