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