有两个完全不同的c#windows应用程序(用于桌面)。一个应用程序每次启动时都会生成一个CSV(带数据)"按钮点击。 现在我需要将此CSV发送到另一个c#应用程序以使其进行处理。 点击"开始"按钮后面的按钮应按顺序发生:
我可以从第一个应用程序创建CSV(第一步是完成,请建议休息?)
答案 0 :(得分:1)
由于您无法更改第二个应用程序,因此您唯一的选择是使用它已支持的内容。您在评论中声明它可以接受文件名作为命令行参数。所以(可能只有)方法是让第一个应用程序启动第二个应用程序并在命令行中提供CSV文件的路径。
首先,我将使用第一个应用程序创建CSV文件,并将其存储在两个应用程序都可以访问的文件夹中。之后,您可以使用命令提示符窗口启动第二个应用程序并提供文件路径(以及其他必要参数)。一旦能够启动第二个应用程序,您就可以扩展第一个应用程序以创建该过程。
主要类是Process类。以下是您需要转移到您的情况的示例:
var csvPath = System.IO.Path.GetTempFileName(); // Use a temporary file
// ... Create CSV
try
{
var pathToSecondApp = "C:\\SecondAppFolder\\SecondApp.exe";
var psi = new ProcessStartInfo(pathToSecondApp);
psi.Arguments = "-file \"" + csvPath + "\""; // command line arguments for the process
using(var p = Process.Start(psi))
{
// Wait for process to complete
p.WaitForExit();
// Analyze return code
if (p.ExitCode != 0)
throw new ApplicationException("Error running Second App");
}
}
finally
{
// Delete CSV
System.IO.File.Delete(csvPath);
}
答案 1 :(得分:0)
您可以尝试从第二个应用程序中提取函数到librairy项目(.dll文件)。在两个应用程序中导入此DLL后,您将能够在第一个应用程序中使用该功能。
要在项目中导入.dll文件,只需转到"参考文献"在项目设置中选择"添加参考..."。
这不是两个应用程序之间的真实通信,但如果您只想要像您所描述的应用程序行为,它可以解决您的问题。