c# - 获取 WPF 的程序集版本
问题描述
我有一个程序,我刚刚用 wix 构建了一个安装程序,我现在试图获取我的程序的程序集版本,我在教程中查看了 GetAssemblyIdentity,但我看不到我应该如何为我的应用程序执行此操作 quz不是控制台应用程序!我正在看的教程是这个https://www.youtube.com/watch?v=6Yf-eDsRrnM并且在时间戳 1 小时 28 分钟时,他开始查看程序集版本以及如何为您的安装程序获取它们,但我不是真的了解如何使用 wpf 应用程序执行此操作。我到目前为止所尝试的是
<Target Name="BeforeBuild">
<GetAssemblyIdentity AssemblyFiles="..\WPFAPP\bin\$(C)">
</GetAssemblyIdentity>
</Target>
<Target Name="AfterBuild">
WPFAPP 是我的应用程序的占位符。
解决方案
第一个解决方案:
您可以使用 $(MSBuildProjectName) 所以,指定
<TargetName>$(ProjectName)</TargetName>
在你的 *.csproj
然后您可以使用 $(MSBuildProjectName) 作为程序集名称。要访问此变量,您应该在 wixproj 中编写
<Target Name="BeforeBuild">
<PropertyGroup>
<DefineConstants>ProjectName=%(MSBuildProjectName)</DefineConstants>
</PropertyGroup>
</Target>
你可以在这里看到的可用变量列表
第二个解决方案:
所以,如果你想使用版本。请参见此处的示例。
<Target Name="BeforeBuild">
<GetAssemblyIdentity AssemblyFiles="..\MyApp\bin\$(Configuration)\MyApp.exe">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
</GetAssemblyIdentity>
<PropertyGroup>
<DefineConstants>BuildVersion=%(AssemblyVersion.Version)</DefineConstants>
</PropertyGroup>
</Target>
您应该指定程序集文件(dll 和 exe 文件都是 .Net 文件,.exe 文件也可以在此处指定)。
然后你可以像这里一样使用 BuildVersionVariable:
<Product Id="*"
Name="WixProject1"
Language="1033"
Version="$(var.BuildVersion)"
Manufacturer="WixProject1"
UpgradeCode="c93e09b9-9e8f-444c-a35b-84beb2c3788f">
...
</Product>
ps 您可以结合这些方法,从一条路径获取一些信息,从另一条路径获取一些信息。在项目文件中定义常量然后从 WIX 获取访问的主要 IDEA
推荐阅读
- laravel - laravel 雄辩的关系 3 模型
- wpf - 如何在 Window Resources 中设置 ListBox 项的高度?
- maven - Atlassian bitbucket插件maven编译错误
- python - 如何使用 glob 函数 python 获取特定的?
- asp.net-core - 在 ASP.NET Core 项目中将调试构建配置删除为默认配置
- c# - 绘制线/点/文本后保存WPF图像控件的内容
- node.js - 如何检索在打字稿中构建[自定义构建系统]期间传递的命令行参数
- javascript - 在 ext java 脚本中拆分
- python - 如何从熊猫的数据框中提取数据并将它们分配给普通变量
- python - 如何在 Tensorflow 循环中转换循环?