[英]Add installer says Service name contains invalid characters, is empty, or is too long
[英]Windows Service Installer - Service name contains invalid characters, is empty, or is too long
我一直在關注這篇關於編寫 Windows 服務和隨附安裝程序的 MSDN 文章。 當我嘗試添加安裝程序項目並右鍵單擊設計視圖並選擇“添加安裝程序”時,我收到以下消息:
Service name contains invalid characters, is empty, or is too long
我的服務名稱設置為“UploadManagerService”。 這不包含我知道的任何無效字符,並且低於指定的 80 個字符限制。
我在這里閱讀了幾篇關於這個問題的文章。 This answer表明這是因為服務名稱未在 Visual Studio 中設置,盡管這是在我的情況下設置的。 我還嘗試在 app.config 中設置服務名稱以查看是否有任何區別。 還有其他我可能會遺漏的東西或解決這個問題的方法嗎?
我無法理解名稱有什么問題,但我可以通過使用幾行代碼手動編寫安裝程序來解決這個問題。
假設您遵循MSDN 文章並在選擇“添加安裝程序”后遇到同樣的問題:
添加以下代碼:
var process = new ServiceProcessInstaller {Account = ServiceAccount.LocalSystem};
var serviceAdmin = new ServiceInstaller
{
StartType = ServiceStartMode.Manual,
ServiceName = "MyServiceName",
DisplayName = "My Service Display Name"
};
Installers.Add(process);
Installers.Add(serviceAdmin);
InitializeComponent();
在此之后,我繼續按照 MSDN 文章中的說明進行操作,並能夠使用 InstallUtil.exe 安裝該服務。
我仍然不明白為什么這行不通,但希望這能幫助其他人解決這個問題。
我收到了這個確切的錯誤,一切都應該沒問題。 您快速閱讀錯誤消息,責備它,然后開始檢查項目名稱、類名稱和……等一下:
MSDN 教程將此步驟命名為:
在“設計”選項卡中,從快捷菜單中選擇“屬性”。 在“屬性”窗口中,將 ServiceName 值更改為 MyNewService。
我只是在構建服務時沒有遵循教程,所以請記住伙計們:閱讀錯誤消息並檢查它所抱怨的每一個點!
我會考慮看這個:
您可以通過取消使用 InstallUtil 並使用本機 MSI 功能來真正簡化問題。 事實上,您會注意到視頻只用了 2 分鍾,其中一半時間用於創建實際服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.