C# 如何为没有完整驱动器路径的Web应用构建部署包?

C# 如何为没有完整驱动器路径的Web应用构建部署包?,c#,asp.net,visual-studio-2010,msdeploy,webdeploy,C#,Asp.net,Visual Studio 2010,Msdeploy,Webdeploy,当右键单击ASP.NET Web应用程序并选择“Build Deployment Package”时,我不希望它创建具有完整路径的.zip。我希望无论在哪里构建,输出都是相同的。这可能吗 例如,如果我从模板创建一个空的Web应用程序,它将创建这个zip C:\Users\taggartc\tmp\EmptyWebApp\obj\Debug\Package\EmptyWebApp.zip 拉链具有以下结构: Content\c\u c\users\taggartc\tmp\EmptyWebApp\

当右键单击ASP.NET Web应用程序并选择“Build Deployment Package”时,我不希望它创建具有完整路径的.zip。我希望无论在哪里构建,输出都是相同的。这可能吗

例如,如果我从模板创建一个空的Web应用程序,它将创建这个zip C:\Users\taggartc\tmp\EmptyWebApp\obj\Debug\Package\EmptyWebApp.zip

拉链具有以下结构: Content\c\u c\users\taggartc\tmp\EmptyWebApp\obj\Debug\Package\PackageTmp\bin\EmptyWebApp.dll

有没有办法摆脱这条路,让它变成:
Content\bin\EmptyWebApp.dll

在zip存档中没有使用相对路径的可用选项

你为什么关心布局?我希望输出是相同的,无论哪个开发人员构建它。理想情况下,如果开发人员构建了build.zip,我希望它的校验和是相同的,不管他们将源代码放在哪个目录中。但是为什么这很重要呢?它不会有相同的时间戳;内部DLL也将具有不同的时间戳。即使五分钟后在同一台机器上构建,它也不会完全相同。为什么它会将完整路径放在.zip中?如果我想比较两个不同的web软件包的差异,这难道不更困难吗?我想,我可以将前缀去掉为“PackageTmp”,但仍然可以。如果要比较两个web包,请使用msdeploy命令行。最坏的情况是,将一个部署到虚拟站点,然后对第二个站点执行sync-whatif。您甚至可以使用sync-whatif对两者进行比较。您永远不会比较两个构建,即使根本不涉及任何包。