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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章