C# MSBuild:如何重写输出文件名以使其与程序集名称不同?
我的解决方案中有两个C#项目,它们都是DLL:C# MSBuild:如何重写输出文件名以使其与程序集名称不同?,c#,msbuild,C#,Msbuild,我的解决方案中有两个C#项目,它们都是DLL: MyApp.UI.WPF.csproj MyApp.UI.WinForms.csproj 我的安装过程保证在任何给定时间只安装其中一个。无论是哪种情况,当用户运行应用程序时,MyApp.exe引导程序都将获取它 由于两个DLL包含相同的入口点,因此我希望引导程序保持通用: class Bootstrapper { static void Main() { var asm = Assembly.Load("MyAp
- MyApp.UI.WPF.csproj
- MyApp.UI.WinForms.csproj
class Bootstrapper
{
static void Main()
{
var asm = Assembly.Load("MyApp.UI");
// Execute the UI entry point here.
}
}
这意味着我必须在项目选项“MyApp.UI”中为两个DLL提供相同的程序集名称。问题是MSBuild使用程序集名称作为输出名称,这给我带来了冲突
是否可以说服MSBuild改用其他文件名,例如项目名称?这是CoreComile任务的一个功能,您必须重写它以修改csc上的/out开关。这不是推荐的做法,但可以实现您的目标。您可以在构建中添加一个
,以将输出程序集重命名为通用名称。这就是我最后要做的。我还添加了一个预构建事件,如果目标文件已经存在,它将删除该文件。如果不这样做,重命名有时会失败。