我收到以下错误:
C:\程序 文件\ DOTNET \ SDK \ 2.0.3 \ Microsoft.Common.CurrentVersion.targets(4052,5): 警告MSB3026:无法将“obj \ Debug \ netcoreapp2.0 \ MyApp.dll”复制到 “斌\调试\ netcoreapp2.0 \ MyApp.dll”。开始在1000毫秒内重试1次。该 进程无法访问该文件 'C:\ stackoverflow \ MyApp \ bin \ Debug \ netcoreapp2.0 \ MyApp.dll'因为它 正在被另一个进程使用。 [C:\计算器\ MyApp的\ MyApp.csproj]
尝试在不同终端的同一项目中多次使用dotnet run
时。如何在开发时轻松运行同一应用程序的多个实例,而无需复制文件夹?
如果我在同一时间开始,它有时会起作用:/
答案 0 :(得分:5)
我遇到了同样的问题,并使用--no-build选项解决了该问题:
dotnet run --no-build <path to .dll> <args>
请查看: MSDN documentation
答案 1 :(得分:4)
我已经使用bat文件一次运行6个app实例。唯一的问题是我开始构建应用程序并立即运行脚本。所以我认为你应该确保构建过程结束。然后运行你的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
答案 2 :(得分:0)
还有另一种黑客方式,方法是设置构建配置的唯一名称,如下所示:
start /d "." dotnet run -c Instance1 args
start /d "." dotnet run -c Instance2 args
start /d "." dotnet run -c Instance3 args
start /d "." dotnet run -c Instance4 args
start /d "." dotnet run -c Instance5 args
start /d "." dotnet run -c Instance6 args
此外,您不必在项目文件(MyApp.csproj
)中指定所有构建配置。
在未显式设置配置名称的情况下,将使用默认值Debug
。这就是Debug
文件夹中的DLL被锁定的原因。
答案 3 :(得分:0)
我发现开发中最好的东西是dotnet watch命令行工具。
您可能有一个蝙蝠文件,它将启动多个in MateuszWkDev's answer之类的dotnet watch run <project>
命令。
以监视模式运行不会阻止文件编辑,并且一旦您将自动编辑源文件,便会重建并重新运行应用程序。
假设您在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 <project>
命令的终端。