Я выполняю взаимодействие с неуправляемым .dll
s в стандартном проекте C#. Я не могу добавить эти .dll
s как простые ссылки и должен использовать P/Invoke для их фактического использования. Они не включают в себя манифесты, поэтому любые умные вещи отражения для динамического их загрузки (и, таким образом, решить проблему включения их в виде явных отдельных файлов) просто не может быть и речи.Добавить в качестве ссылки в папке проекта, чтобы всегда копировать в корневой каталог
Я не занимаюсь выпуском установщика, я могу сказать WiX (или любую платформу установщика, которую я выбираю), какие файлы точно помещают в целевую систему.
Проблема в терминах вывода отладки, мне нужны эти .LLL бок о бок с исполняемым файлом моего собственного проекта, но я не хочу, чтобы они загромождали мой фактический управляемый код.
Итак, моя ситуация в этом;
- Я добавляю несколько DLL-файлов в папку проекта в качестве ссылок.
- Я пытаюсь изменить .csproj для вывода связанных файлов в корневой части отладочного вывода.
Это выглядит примерно так:
<None Include="..\..\externals\MyLibraries\ADll.dll">
<Link>TidyFolder\ADll.dll</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Now, normally you'd change the <Link>
tag to where you want the output to go, но делает это:
<None Include="..\..\externals\MyLibraries\ADll.dll">
<Link>ADll.dll</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Изменяет папку Связанная .dll
s проживаете в рамках моего проекта исследователя; он выводит правильно, но беспорядок нежелателен и причина, по которой я хотел в первую очередь бросить их в папку.
TL; DR: Как вы можете одновременно контролировать, где связанный элемент отображается внутри проекта, а также его выходное местоположение при отладке.
Они не загружаются в проточной сборке, когда я делаю это. Единственный способ, которым я знаю, чтобы (ужасные, сторонние) библиотеки были доступны в управляемом, - это их развертывание бок о бок. – Izzy