Asp.net core 使用dotnet运行运行.NET核心应用程序的多个并行实例
我得到以下错误: C:\程序 Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): 警告MSB3026:无法将“obj\Debug\netcoreapp2.0\MyApp.dll”复制到 “bin\Debug\netcoreapp2.0\MyApp.dll”。开始在1000毫秒内重试1次。这个 进程无法访问该文件 “C:\stackoverflow\MyApp\bin\Debug\netcoreapp2.0\MyApp.dll”,因为它 正在被另一个进程使用。 [C:\stackoverflow\MyApp\MyApp.csproj] 尝试使用Asp.net core 使用dotnet运行运行.NET核心应用程序的多个并行实例,asp.net-core,Asp.net Core,我得到以下错误: C:\程序 Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): 警告MSB3026:无法将“obj\Debug\netcoreapp2.0\MyApp.dll”复制到 “bin\Debug\netcoreapp2.0\MyApp.dll”。开始在1000毫秒内重试1次。这个 进程无法访问该文件 “C:\stackoverflow\MyApp\bin\Debug\netcoreapp2.0
dotnet时,请在同一项目上从不同终端多次运行。如何在开发时轻松运行同一应用程序的多个实例,而不必复制文件夹
如果我同时启动这两个应用程序,它有时会起作用://我使用bat文件一次运行了6个应用程序实例。唯一的问题是当我开始构建应用程序并立即运行脚本时。所以我认为您应该确保构建过程结束。然后运行bat文件,例如dotnet,重复运行六次。您的应用程序应被构建为执行此文件
start /d "." dotnet run args
start /d "." dotnet run args
start /d "." dotnet run args
start /d "." dotnet run args
start /d "." dotnet run args
start /d "." dotnet run args
我遇到了同样的问题,并使用--no build选项解决了它:
dotnet run --no-build <path to .dll> <args>
dotnet-run——无构建还有一种方法,就是设置构建配置的唯一名称,如下所示:
start/d“.”dotnet运行-c Instance1参数
开始/d“.”dotnet运行-c Instance2参数
开始/d“.”dotnet运行-c Instance3参数
开始/d“.”dotnet运行-c Instance4参数
开始/d“.”dotnet运行-c实例5参数
开始/d“.”dotnet运行-c Instance6参数
此外,您不必在项目文件中指定所有构建配置(MyApp.csproj
)
在不明确设置配置名称的情况下,将使用默认值,即Debug
。这就是为什么Debug
文件夹中的DLL被锁定的原因。我发现在开发过程中最好的东西是命令行工具
您可以有一个bat文件,该文件将启动多个dotnet watch run
命令,如
在监视模式下运行不会阻止文件的编辑,并且会在自动编辑源文件后重建并重新运行应用程序
假设您在src
文件夹中有bat文件,其中包含SomeProject、OtherProject和YetAnotherProject文件夹,其中包含csproj文件。然后bat文件可能看起来像:
start /d "%~dp0\SomeProject" dotnet watch run SomeProject
start /d "%~dp0\OtherProject" dotnet watch run OtherProject
start /d "%~dp0\YetAnotherProject" dotnet watch run YetAnotherProject
运行此bat文件后,将有三个终端运行dotnet watch run
命令。谢谢您的回答。创建2个(或更多)的.bat文件,每个文件都有自己的“dotnet run x”行,这样做行不通。只有第一个将运行,随后的将立即关闭。我需要为每个实例使用不同的命令行参数。一个文件有六个实例:这对我有用,也许你没有Console.ReadLine();“我看到它们确实在两个终端中打开,不幸的是其中一个仍然立即关闭:/I我猜这与手动打开两个终端并执行命令相同,但至少当您手动操作时,终端不会自动关闭:/I将尝试添加Console.ReadLine();最后,查看是否有帮助:)其中一个仍然关闭,即使在末尾有Console.ReadLine。我尝试启动的应用程序有两个实例,一直运行到终止(在本例中,只有一个实例会这样做,因为另一个实例会终止)。我很惊讶这会是一个问题,因为在开发带有命令行参数的控制台应用程序时,我希望这是一件非常正常的事情。这是正确的答案。您不需要dll路径,可以将参数放在--no build的任一侧。