Goober S. Johnsson Ответов: 2

Какая сборка мне нужна для "windowsinput"? C# .NET


У меня есть этот простой компилятор, в котором я могу компилировать консольные приложения C#..

И когда я пытаюсь скомпилировать этот код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WindowsInput;
using System.Windows.Forms;

namespace ScreenshotConsole
{
    class Program
    {


        static void Main(string[] args)
        {
            screenshot();
            Console.WriteLine("Printescreened");
            Console.ReadLine();
        }


        static void screenshot()
        {
            SendKeys.SendWait("{PRTSC}");
        }

    }
}



Он выдает мне эту ошибку

The type or namespace name 'WindowsInput' could not be found (are you missing a using directive or an assembly reference?)


Я уже добавил
parameters.ReferencedAssemblies.Add("System.dll");


И, насколько я знаю, это должна быть единственная необходимая библиотека dll.



Исходный код компилятора.

using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Forms;



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.dll");
            parameters.ReferencedAssemblies.Add("System.dll");
            parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
            parameters.ReferencedAssemblies.Add("System.Management.dll");

            parameters.ReferencedAssemblies.Add("WPF\\PresentationFramework.dll");
            parameters.ReferencedAssemblies.Add("System.Xaml.dll");
            parameters.ReferencedAssemblies.Add("WPF\\WindowsBase.dll");
            parameters.ReferencedAssemblies.Add("WPF\\PresentationCore.dll");

            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! ---";
            }

        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Builder bldr = new Builder();
            bldr.Visible = true;
        }
    }
}


Что я уже пробовал:

Я пробовал читать и спрашивать об этом, но там ничего не помогало.

2 Ответов

Рейтинг:
0

David_Wimbley

Ваш код указывает, что оператор using является

using WindowsInput
.

На первый взгляд, это не пространство имен библиотеки .net, поэтому единственный человек, который может сказать вам, какое пространство имен использовать, - это тот, кто написал эту библиотеку.

Быстрый поиск в google может привести меня к мысли, что вы допустили ошибку и намереваетесь использовать систему.Окна.Ввод?

Гугл[^]

Система.Окна.Входное Пространство Имен[^]

Если вы не имели в виду систему.Окна.Тогда я боюсь, что вам нужно поговорить с другими людьми, работающими над вашим проектом, или с человеком, который написал вашу библиотеку. Помните, что у нас нет доступа к вашему жесткому Риву, у нас нет доступа к вашему коду, мы не читаем мысли и ничего не знаем о вашем проекте.

Однако эта проблема довольно ясна: либо у вас есть тип в вашем пространстве имен, либо вы используете неправильное пространство имен библиотеки, которую ваша команда/члены вашего проекта решили использовать.


Goober S. Johnsson

О, мой бог.. Мне просто нужно было удалить это пространство имен..
Спасибо! :Д

Рейтинг:
0

Dave Kreskowiak

У вас есть строка "using WindowsInput;" в верхней части вашего кода. В .NET Framework такого пространства имен нет.

Что вы на самом деле пытаетесь сделать с этим кодом и какие классы вы пытаетесь использовать?