在安装程序中检索应用程序产品名称
我的程序有一个安装程序类(位于应用程序项目中)。我还有一个类,它指示我的数据保存位置,它显然使用 Application.ProductName
,而在安装程序中,这不会作为我的产品名称返回,但会以类似于 Windows 的形式返回安装程序 - Unicode
这是预期的。
那么,我如何在安装程序类中检索实际的产品名称?我是否必须对其进行硬编码,或者我可以调整我的安装程序类吗?
I have an installer class for my program (that resides within the application project). I also have a class that dictates where my data save locations are which uses Application.ProductName
obviously whilst in the installer this does not come back as my product name but it comes back as something like Windows Installer - Unicode
which is expected.
How do I then, in the installer class, retrieve the actual product name? Would I have to hardcode it or can I tweak my installer class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 CustomActionData 属性。现在安装程序类可以通过 Context.Parameters< 访问它们/a>.根据您的要求,您可以将产品名称作为某些参数传递 - 例如,CustomActionData 值可以是
/prodName="[ProductName]"
,然后通过Context.Parameters["prodName" 访问它]
。特殊语法[属性名称]
用于传递各种安装程序属性(自定义操作) - 请参阅 this 用于各种可用的预定义属性。 这将有助于了解如何传递自定义数据。You can pass data to your custom action (i.e. installer class) in setup project using CustomActionData property. Now installer class can access them via Context.Parameters. For your requirement, you can pass product name as some parameter - for example, CustomActionData value could be
/prodName="[ProductName]"
and then access it viaContext.Parameters["prodName"]
. The special syntax[property name]
is used to pass various installer properties (to custom action) - see this for various pre-define properties available. This will help in understanding how to pass custom data.Assembly.GetExecutingAssembly().GetName().Name
您可以使用
Assembly.GetExecutingAssembly().GetName().Name
在安装程序类中获取应用程序名称,如果您还想获取用户选择的安装目录。您可以使用Assembly.GetExecutingAssembly().Location
来完成此操作。Assembly.GetExecutingAssembly().GetName().Name
You can get the application name inside the installer class using
Assembly.GetExecutingAssembly().GetName().Name
, If you also want to get the user-selected directory for installation. You can do that withAssembly.GetExecutingAssembly().Location
.