为什么我的应用程序告诉我元数据文件找不到,即使我刚刚添加了它

本文关键字:添加 应用程序 我的 告诉我 元数据 找不到 文件 为什么 | 更新日期: 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");