使用与此类似的代码 Inno Setup for Windows service?
在Windows 7机箱(VS 2010)上,当我尝试运行我的inno安装程序时,我得到以下结果找不到具有RunInstallerAttribute.Yes属性的公共安装程序
如果使用标准Windows安装程序运行,该服务可以正常运行;这是代码:
[RunInstaller(true)]
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
public static void Main(string[] args)
{
if (args.Count()==1)
{
string parameter = string.Concat(args);
switch (parameter)
{
case "--install":
ManagedInstallerClass.InstallHelper(new string[] {Assembly.GetExecutingAssembly().Location});
break;
case "--uninstall":
ManagedInstallerClass.InstallHelper(new string[]
{"/u", Assembly.GetExecutingAssembly().Location});
break;
}
}
else
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new SkyLibrarian()
};
ServiceBase.Run(ServicesToRun);
}
}
}
有没有人对此问题有任何经验?我使用右键单击以管理员身份运行安装程序。感谢
Simon Norburn
答案 0 :(得分:0)
问题在您的错误消息和粘贴的代码中已明确说明。该错误表明存在“无公共安装程序,并且可以找到RunInstallerAttribute.Yes属性”。在您的代码段中,您将Program类(RunInstaller属性设置为true)声明为 internal 。
将您的班级声明更改为公开,它应该正常工作。
[RunInstaller(true)]
public static class Program
答案 1 :(得分:0)
这是一个简单的错误。 ProjectInstaller文件已损坏并从解决方案中删除。它原本打算取代它,但有人'忘了'。一旦找到,问题就解决了。错误消息不具有描述性,也没有帮助。