2
A
回答
1
假設COM +組件是您的組件(ServicedComponent
實例),那麼您可以使用<regsvcs>
task來實現此目的。
你將不得不表明你的COM +組件是在裝配時,(與uninstall
的ActionType
使用action
)刪除應用程序,然後重新安裝(您可能需要爲這兩個工作實例)。
如果您的程序集是而不是 COM +組件/應用程序的來源,那麼您將需要編寫自己的自定義任務,通過COM interop訪問COM+ Administration API。
1
我一直在努力解決同樣的問題。找不到比vbs腳本更詳細的方法。我提出的解決方案如下:
我創建了一個引用NAnt.Core的C#.Net解決方案。我創建了兩個從Nant Task類繼承的類(任務)。您需要三樣東西: 1)類
[TaskName("startupComApplicationTask")]
2)將任務屬性上,你想從南特
3傳遞的任何屬性將TASKNAME屬性)實施ExecuteTask ()方法
最後的結果是這樣的:
[TaskName("startupComApplicationTask")]
public class StartupComApplicationTask: Task
{
private string _applicationName;
private string _machineName;
[TaskAttribute("applicationName", Required = true)]
public string ApplicationName
{
get
{
return _applicationName;
}
set
{
_applicationName = value;
}
}
[TaskAttribute("machineName", Required = true)]
public string MachineName
{
get
{
return _machineName;
}
set
{
_machineName = value;
}
}
protected override void ExecuteTask()
{
COMAdminCatalog objAdmin = new COMAdminCatalog();
objAdmin.Connect(MachineName);
var objCollection = (COMAdminCatalogCollection)objAdmin.GetCollection("Applications");
objCollection.Populate();
foreach (COMAdminCatalogObject objAppNames in objCollection)
{
if (objAppNames.Name.Equals(ApplicationName))
{
ICatalogCollection objComponents = (ICatalogCollection)objCollection.GetCollection("Components", objAppNames.Key);
objComponents.Populate();
}
}
objAdmin.StartApplication(ApplicationName);
}
}
顯然,爲了實現這一目標,您需要包含對ComAdmin互操作程序集的引用。你可以在Com參考文件的「COM + 1.0 Type Library」下找到它。
構建將爲您創建兩個dll的項目。 interop和你的。將這些放入你的nant文件夾(在bin目錄中)。
您可以從以下方式中南特調用這些:
<startupComApplicationTask machineName="193.132.119.249" applicationName="NantTest" />
爲shutingdown重複,只需調用,而不是StartApplication ShutdownApplication。
希望這會有所幫助
相關問題
- 1. Nant沒有啓動nunit2任務
- 2. nant與msbuild:停止服務
- 3. 當服務停止時,服務啓動的AsyncTask是否完成?
- 4. 是否有顯示所有屬性名稱/值的NAnt任務?
- 5. 是否有可能從註冊表讀取防止COM服務器啓動?
- 6. 啓動和停止服務
- 7. 停止/啓動服務
- 8. msbuild服務啓動/停止
- 9. 啓動和停止服務
- 10. 是否有任何()停止成功?
- 11. 服務器端事件啓動/停止
- 12. WSO2 Esb任務啓動和停止事件
- 13. 停止Httpd以更新COM組件
- 14. 是否可以記錄誰啓動或停止了Windows服務?
- 15. 是否可以從PHP啓動/停止apache服務?
- 16. 阻止啓動任務
- 17. 如何使用Ant任務啓動和停止jboss服務器?
- 18. Java長期任務 - 它是否停止寫入文件?
- 19. SSRS啓動/停止
- 20. 啓動腳本在停止之前是否有時間限制?
- 21. 是否有可能通過libcloud啓動/停止節點
- 22. 是否有可能在IIS啓動/停止WCF服務時處理
- 23. 無法停止使用ExecutorService啓動的任務
- 24. 如何在iOS 5中啓動可停止的計算任務?
- 25. 如何停止使用NSOperationQueue啓動的任務?
- 26. 真正的啓動/停止與msbuild任務無論錯誤
- 27. 如何停止已啓動的ColdFusion MX-7計劃任務
- 28. 如何立即停止使用ExecutorService啓動的任務?
- 29. 登錄web服務的啓動/停止
- 30. JBoss的服務啓動後又停止