vs2010 win7 win8 編譯時報許可權錯誤
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(732,5): warning MSB3075: 命令“regsvr32 /s "D:\project\CleanDir\Debug\CleanDir.dll"”已退出,程式碼為 5。請驗證您是否有足夠的許可權來執行此命令。
1> 上一錯誤已轉換為警告,因為呼叫任務時指定了 ContinueOnError=true。
1> 繼續生成,因為任務“Exec”的“ContinueOnError”設定為“true”。
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(744,5): error MSB8011: 未能註冊輸出。請嘗試啟用“逐使用者重定向”,或者使用提升的許可權從命令提示符處註冊該元件。
1>
1>生成失敗。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
兩個解決辦法:
第0個:
Solution Explorer ->專案節點->滑鼠右鍵->Properties->Linker ->General->Pre-user Redirection 設為TRUE 就好了。
中文版:
Solution Explorer ->專案節點->滑鼠右鍵->屬性->連結器->常規->逐使用者重定向
第1個:
// DllRegisterServer - 在系統登錄檔中新增項。
STDAPI DllRegisterServer(void)
{
// 註冊物件、型別庫和型別庫中的所有介面
ATL::AtlSetPerUserRegistration(true);
HRESULT hr = _AtlModule.DllRegisterServer();
return hr;
}
// DllUnregisterServer - 在系統登錄檔中移除項。
STDAPI DllUnregisterServer(void)
{
ATL::AtlSetPerUserRegistration(true);
HRESULT hr = _AtlModule.DllUnregisterServer();
return hr;
}
沒錯,就是這一句:ATL::AtlSetPerUserRegistration(true);