System.IO.FileNotFoundException В многопроектном решении - PullRequest
0 голосов
/ 14 февраля 2019

Так что я застрял на этой ошибке в течение хорошей недели, и это очень расстраивало

enter image description here

(невозможно загрузитьфайл или сборка 'Audio.Default.Switcher.Wrapper.dll' или одна из его зависимостей. Указанный модуль не найден)

Я работаю с Visual Studio 2017 и скачал проект SoundSwitch , и все работает отлично.Я могу запустить «SoundSwitch» без каких-либо ошибок.

Способ, которым работает решение (насколько я могу понять), заключается в том, что проект SoundSwitch C # является «основным» и имеет ссылкив «Audio.Default.Switcher.Wrapper», а также «SoundSwitch.UI.UserControls»

«Audio.Default.Switcher.Wrapper» как ссылку на «AudioDefaultSwitcher»

  • Оба «Audio.Default.Switcher.Wrapper» и «AudioDefaultSwitcher», по-видимому, компилируются как файлы .dll
  • «SoundSwitch.UI.UserControls» не может быть запущен и используется для отображения данных, я думаю
  • "SoundSwitch" - единственный запускаемый проект (конечно, не считая моего)

enter image description here

Тест K005_ МОЙ проект, я имеюдобавил его, и он имеет ссылки (только) на "SoundSwitch", и я пытаюсь использовать функции из проекта SoundSwitch внутри K005_test.И до сих пор мой проект K005_test состоит только из

Program.cs (где я, кстати, получаю ошибку)

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

namespace K005_test
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1()); //Exception thrown here
        }
    }
}

Form1.cs (куда я положил свой код для теста)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace K005_test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("This is a test");
            var test = SoundSwitch.Model.AppModel.Instance.AvailablePlaybackDevices; //Error this line exists
        }
    }
}

И когда я запускаю свой проект K005_test, он компилируется и работает очень хорошо, за исключением случаев, когда я нажимаю кнопку Затем яполучите ошибку, которую я разместил выше.Кроме того, окно сообщения не открывается.

То, что я пробовал до сих пор:

  • Перевернуть все в "x86" или "Win32", кажется, что это может быть связанопроблема с чем-то 64-битным
  • Использование ссылок на «Audio.Default.Switcher.Wrapper.dll» и «SoundSwitch» в K005_test
  • копия «Audio.Default.Switcher.Wrapper.dll»почти везде и молясь богам
  • Пытаясь понять, где он ищет «Audio.Default.Switcher.Wrapper.dll», но я не смог ничего найти, когда смотрел в деталях исключения

Ничего не помогло.

Для всех, кто интересуется, я загрузил всю папку проекта здесь

https://drive.google.com/open?id=1OABjDiZyF0B-1-b15_9lzMrPZ4UpyKqU

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...