为什么我的应用程序告诉我元数据文件找不到,即使我刚刚添加了它
本文关键字:添加 应用程序 我的 告诉我 元数据 找不到 文件 为什么 | 更新日期: 2023-09-27 18:09:09
所以我最近问了一个问题,为什么我的引用没有被添加,那是因为我忘记添加一段代码。这段代码是这样的。
parameters.ReferencedAssemblies.Add("Microsoft.CSharp");
我添加了这个片段,现在它给我这个错误。
Metadata file 'Microsoft.CSharp' could not be found
以前从未见过任何元数据错误,所以这让我很困惑。
我的源代码
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
namespace SimpleBuilder
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// store code
/// select what features
/// print out textfile with all the code from the features
/// compile that textfileContent to a exe
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void fakeMessageOne()
{
if(fakeMessageCheckbox.IsChecked == true)
{
fakeMessage1 fkmsg = new fakeMessage1();
fkmsg.fakeMessage();
}
}
private void button_Click(object sender, RoutedEventArgs e)
{
CSharpCodeProvider csc = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", frameworkTextbox.Text } });
CompilerParameters parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll" }, outputTextbox.Text, true);
parameters.GenerateExecutable = true;
parameters.ReferencedAssemblies.Add("Microsoft.CSharp");
CompilerResults result = csc.CompileAssemblyFromSource(parameters, sourceTextbox.Text);
if (result.Errors.HasErrors)
{
result.Errors.Cast<CompilerError>().ToList().ForEach(error => errorTextbox.Text += error.ErrorText + "'r'n");
}
else
{
errorTextbox.Text = "--- Build Succeeded! ---";
}
}
}
}
这是我试图编译在我的应用程序(不是在vs)
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
namespace SimpleBuilder
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// store code
/// select what features
/// print out textfile with all the code from the features
/// compile that textfileContent to a exe
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void fakeMessageOne()
{
Messagebox.Show("Hello World");
}
}
}
我的旧帖子为什么我的应用程序说我缺少推荐信,即使我有他们?
ReferencedAssemblies.Add()
正在寻找文件名,因此添加扩展名:
parameters.ReferencedAssemblies.Add("Microsoft.CSharp.dll");