visual studio 2010 процессу Отключите приложение Visual Studio Прикрепите предупреждение безопасности при отладке IIS




присоединение к процессу visual studio вместо запуска (9)

Это не прямой ответ на вопрос, но он обходит сообщение безопасности, а также обеспечивает более быстрый способ привязки к ранее прикрепленному процессу:

  • установить расширение Reattach
  • прикрепите с помощью Reattach, и сообщение обходит
  • повторное присоединение (Ctrl-R + Ctrl- [1-5]) к предыдущему процессу имеет такое же преимущество

При использовании Visual Studio 2008 или 2010 при каждом подключении к IIS w3wp.exe вы получаете Attach Security Warning,

Как вы это сделаете?

Было бы здорово также знать, как держать его привязанным к задержке, так как это, похоже, затягивается через некоторое время.

Btw: Я добавил это как комментарий к ответу ниже, первое, что я сделал, это попробовать статью msdn http://msdn.microsoft.com/en-us/library/ms241736.aspx но это не сработает.


Другие ответы в этом сообщении содержат правильную информацию, но у меня были проблемы с ее работой, поэтому это попытка сделать ответ очень явным. Эти инструкции работали для Visual Studio 2010, работающих под управлением Windows 7 Ultimate 64-Bit.

  • Убедитесь, что экземпляры Visual Studio не запущены (используйте диспетчер задач для проверки файла devenv.exe )
  • Добавьте значение реестра DWORD DisableAttachSecurityWarning в HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger и установите значение 1 . Для Visual Studio 2008 замените XX на 9.0 , для 2010 используйте 10.0

Причина, по которой я пытался получить эту работу, заключалась в том, что я пытался использовать HKEY_LOCAL_MACHINE вместо HKEY_CURRENT_USER. Мне пришлось прибегать к использованию Process Monitor и немного фильтрации на devenv для определения моей ошибки. Я подозреваю, что значение HKLM влияет только на то, если оно будет установлено до того, как вы впервые откроете Visual Studio.

Любые открытые экземпляры Visual Studio будут перезаписывать ваши изменения, когда они будут закрыты, и только новые экземпляры в любом случае подберут настройку.

Насколько мне Wow6432Node реестра Wow6432Node кажется ненужным. Следующие команды Powershell будут применять шаги для Visual Studio 2010.

Get-Process -Name devenv* | ForEach-Object { Stop-Process $_.Id }
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VisualStudio\10.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force

Я смог сделать это Работает в Windows 7. Сначала я изменил значение реестра с открытым VS2008. Затем я закрыл его и обновил редактор реестра и заметил, что значение было сброшено на 0. Затем я изменил его на 1 и начал VS2008. Теперь он отлично работает. Я попытался закрыть VS2008 и открыть его обратно, и значение реестра остается 1. Спасибо за вашу помощь


Вариант powershell, основанный на существующих ответах от SliverNinja и Martin Hollingsworth. Это было протестировано с помощью Visual Studio 2015 в среде win7 / x64 . Сценарий попросит вас закрыть Visual Studio, если он запущен (не будет пытаться его убить).

$vsversion = "14.0" # VS 2015 (optionally 12, 11, 10, 9, etc...)
$disable = 1 # set to 0 to enable the warning message

# not using Get-Process here because powershell instance can be 64 bit and devenv is 32 bit
if (!(get-wmiobject win32_process -filter "name='devenv.exe'")) {
    # Create or (force) update the property
    New-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -Value $disable -PropertyType 'DWORD' -Force
    Write-Host Done!
}
else {
    Write-Error "Please close Visual Studio first!"
}

поэтому единственное, что будет работать для меня с Visual Studio 2010 на x64 / Win7, - это обновление обоих узлов, включая Wow6432Node.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\10.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

Настройка реестра работает; однако вы должны убедиться, что вы установите его в 32-разрядной изолированной программной среде для VS2005 / 2008, либо используя 32-разрядный regedit.exe в %windir%\SysWOW64\ либо добавив его в HKLM\Software\Wow6432Node\... . Я создал сценарий .reg, который просто добавляет его к обоим:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

Просто измените версию на 8,0 за 2005 год, 10,0 на 2010 год и т. Д.

ПРИМЕЧАНИЕ: regedit на Windows 7, кажется, хочет .reg-файлы, сохраненные как UTF16-LE, поэтому, если вы сохраните их в .reg-файле, имейте в виду, что вам нужно это сделать.


Вы можете изменить идентификатор iis AppPool для своего фактического пользователя Windows, если это локальная машина.


ваш ответ доступен по http://msdn.microsoft.com/en-us/library/ms241736.aspx

Если вы отлаживаете законный сценарий, вызывающий это предупреждение, и хотите его подавить, существует параметр реестра, который позволяет вам это сделать. Не забудьте снова включить предупреждение после завершения сценария.


Также можно найти в статье, упомянутой Tzury, но подвести итог ответам в этой теме:

убедитесь, что Visual Studio не запущена при изменении раздела реестра или будет перезаписана при выходе со старым значением

Измените (или создайте) следующий раздел реестра на 1 :

Visual Studio 2008 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2010 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2012 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2013 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2015 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger\DisableAttachSecurityWarning

Для VS2015 вам может потребоваться создать ключ реестра, упомянутый выше.

  1. Убедитесь, что Visual Studio не запущена и откройте редактор реестра.
  2. Перейдите в HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger , щелкните правой кнопкой мыши и создайте новый DWORD :
    • Имя: DisableAttachSecurityWarning
    • Значение: 1 .

Обновление: если вы не хотите открывать regedit, сохраните этот gist как файл * .reg и запустите его (импортирует ключи для всех версий VS ниже VS2017).

Visual Studio 2017

Конфигурация сохраняется в частном реестре, см. Этот ответ: https://.com/a/41122603/67910

Для VS 2017 сохраните этот gist как файл * .ps1 и запустите его как admin, или скопируйте и вставьте следующий код в файл ps1:

#IMPORTANT: Must be run as admin

dir $env:LOCALAPPDATA\Microsoft\VisualStudio\15.* | % {
    #https://.com/a/41122603
    New-PSDrive HKU Registry HKEY_USERS

    reg load 'HKU\VS2017PrivateRegistry\' $_\privateregistry.bin

    $BasePath='HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio'

    $keysResult=dir $BasePath
    $keysResult | ? {$_.Name -match '\\\d+\.\d+_[^_]+$'} | % {
        $keyName = $_.Name -replace 'HKEY_USERS','HKU:'
        New-ItemProperty -Path $keyName\Debugger -Name DisableAttachSecurityWarning -Value 1
    }
    $keysResult.Handle.Close()    

    [gc]::collect()

    reg unload 'HKU\VS2017PrivateRegistry'

    Remove-PSDrive HKU
}






iis-7