Sorun
Bir Komut İsteminde aşağıdaki komutu çalıştırdığımda:
devenv /? > out.txt & del out.txt
Aşağıdaki hatayı alıyorum:
The process cannot access the file because it is being used by another process.
Bu bir sorun için minimal bir repro durumdur çok daha büyük derleme betiği .
Bu sorun, derleme betiğinin birkaç kullanıcısı tarafından bildirilmiştir. Bazı kullanıcılar her zaman problem yaşar, bazıları ise asla yaşamaz.
Nedir devenv
?
devenv
ifade eder devenv.com
, çağıran küçük bir ön uç yardımcı programı devenv.exe
, Visual Studio IDE'nin ana çalıştırılabilir. MSDN makalesinde daha fazla ayrıntı Devenv komut satırı anahtarları .
Ne zaman devenv.exe
argümanlar olmadan çağrılır, Visual Studio IDE'yi açar. Ne zaman devenv.exe
doğru argümanlarla çağrılır, komut satırında programlar oluşturabilir. Her iki durumda da, devenv.exe
hemen döner.
Ancak, devenv.com
kadar bekleyecek devenv.exe
vardır neredeyse bitti, ancak biraz daha erken sona ermiş gibi görünüyor ve devenv.exe
hala çalışıyor ve hataya neden oluyor.
Soru
Bu hatanın oluşmasını nasıl güvenilir bir şekilde önleyebilirim? Duraklama ekleme (ör. timeout 2
) hakaretten hemen sonra devenv
şu an tek düşünebildiğim bu.
Belki de sarmanın bir yolu vardır. devenv
içine girmek bir şey geri kontrolü verir sadece komut tamamen sonlandırıldığında?
çevre
- Microsoft Windows sürüm 10.0.17134.165
- Microsoft Visual Studio 2017 sürüm 15.0.27703.2035
EDIT: Sorun komutları bir toplu komut dosyasından çalıştırılsa bile oluşur (göre https://superuser.com/a/908744/404097 , bu alakalı bir ayrıntı gibi görünüyor.)