Путь к exe в dll при использовании в приложении ASP.NET MVC в Debug - PullRequest
1 голос
/ 07 сентября 2011

Я написал оболочку для стороннего exe.Exe находится в папке внутри моего проекта библиотеки классов и развернут с помощью dll.

Модульное тестирование метода, запускающего процесс, содержащий этот exe, работает нормально, но когда я использую dll внутри веб-приложения, exeне может быть найден.

Отладка Я вижу, что путь к файлу exe неверен при использовании из моего веб-приложения.

Я пробовал:

string processPath = Path.Combine(Environment.CurrentDirectory, @"folder\file.exe");

и

string processPath = Path.GetFullPath(@"folder\file.exe");

, а также просто:

var processStartInfo = new ProcessStartInfo(@"folder\file.exe");

Есть ли что-то, что я могу использовать, чтобы сослаться на папку относительно того, где хранится dll (т.е. в корзине для моего веб-приложения))

Ответы [ 2 ]

2 голосов
/ 07 сентября 2011

Исполняемый файл:

string appPath = Path.GetDirectoryName(Application.ExecutablePath);

.dll

string path = Path.GetDirectoryName(Assembly.GetAssembly(typeof(MyClass)).CodeBase);

может потребоваться

using System.IO;
using System.Windows.Forms;
using System.IO;
using System.Reflection;

Или Вы можете использовать:

Вы можете объединитьexe и dll с помощью инструмента ILMerge.exe

lmerge.exe /out:C:\SomePath\TheOnlyOneExe.exe 
C:\....\bin\Debug\someexe.exe C:\....\bin\Debug\somedll.dll /t:exe

Нашли это в другом посте DLL включает в exe.file?

0 голосов
/ 07 сентября 2011

Используйте Server.MapPath. Это вернет правильный каталог.

...