用 Visual Studio 给 dll 和 exe 贴上白标签的好方法是什么?
本质上,我们希望能够根据我们为其打包解决方案的客户端更改 dll 和 exe 的名称,例如:
而不是 myCompany.exe 和 myCompany.db.dll,我想要 yourComany.exe 和 yourComany.db.dll 或 acme.exe 和 acme.db.dll 等
编辑:
目前,我们正在使用带有 wix 项目的直接 Visual Studio 构建过程来创建 msi。
用 Visual Studio 给 dll 和 exe 贴上白标签的好方法是什么?
本质上,我们希望能够根据我们为其打包解决方案的客户端更改 dll 和 exe 的名称,例如:
而不是 myCompany.exe 和 myCompany.db.dll,我想要 yourComany.exe 和 yourComany.db.dll 或 acme.exe 和 acme.db.dll 等
编辑:
目前,我们正在使用带有 wix 项目的直接 Visual Studio 构建过程来创建 msi。
如果重建它的唯一理由是更改名称,那么您可以首先使用通用的东西吗?想象一下,必须修补 50 个相同的 DLL,并分别构建/部署每个 DLL,因为它们都必须命名为不同的东西。即使它只适用于少数客户,我也不愿意保持这种状态。版本控制也可能很麻烦。
如果您必须这样做,我可能会执行构建任务(可以执行相当高级的操作)。您提到您是“打包解决方案”;构建任务的可行性取决于它的打包方式。
为了回应您关于使用特定于客户端的名称命名 EXE 的评论......我的明显建议是让这些应用程序包含尽可能少的代码。
我能想到的最简单的构建集成是创建一个构建后任务,该任务在发布模式下成功编译后运行。然后,该任务可以读取定义唯一名称的配置文件,并将成功构建的 EXE 复制到输出目录。
一些操作可以通过任务配置文件完成:http: //msdn.microsoft.com/en-us/library/ms171466。
或者,您可能想创建一个小应用程序来为您完成所有工作,只需将配置开关传递给它。
例如,这里有一个构建后的小命令,我在成功构建 Web 应用程序时执行该命令来缩小我的 JavaScript/CSS。概念类似:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe
"$(ProjectDir)Properties\build\minify.xml"
/p:SourceLocation="$(ProjectDir)client"
/p:CssOutputFile="$(ProjectDir)client\final\final-full.css"
/p:JavaScriptOutputDirectory="$(ProjectDir)client\final"
您可以在所有输出程序集(dll 和 exe)上的任何后期构建过程中使用ILMerge,以创建一次性的客户品牌构建。
ilmerge /out:CustomerName.exe internalName.dll internalName.exe
我不知道是否有一种好方法可以在不将项目实际构建为 XYZ 公司的情况下做到这一点。您可以尝试这样的事情,这会给您带来所需的结果,但它也会更改程序集的物理名称,这可能会导致依赖性问题。