Это возможно, однако, не только в командной строке. Вам нужно будет создать пользовательский DeploymentRuleHandler
, например:
namespace CustomRuleHandlers
{
using Microsoft.Web.Deployment;
[DeploymentRuleHandler]
internal class IgnoreFileAttributesRuleHandler : DeploymentRuleHandler
{
public override int CompareAttribute(DeploymentSyncContext syncContext, DeploymentObject destinationObject, DeploymentObjectAttribute destinationAttribute, DeploymentObject sourceObject, DeploymentObjectAttribute sourceAttribute, int currentComparison)
{
if ((destinationObject.Name.Equals("filePath", StringComparison.Ordinal))
&& destinationAttribute.Name.Equals("attributes", StringComparison.Ordinal))
{
return 0;
}
return currentComparison;
}
public override string Description
{
get { return "Ignores file attributes when determining if a file should be synched or not."; }
}
public override string FriendlyName
{
get { return "IgnoreFileAttributes"; }
}
public override string Name
{
get { return "IgnoreFileAttributes"; }
}
public override bool EnabledByDefault
{
get { return false; }
}
}
}
Скомпилируйте это в сборку (для .Net 3.5 для WebDeploy v2!) И поместите сборку в подпапку "Extensibility" в папке WebDeploy (обычно C:\Program Files\IIS\Microsoft Web Deploy V2\Extensibility
).
Затем вы можете легко использовать свое пользовательское правило при запуске msdeploy из командной строки, добавив следующий аргумент:
-enableRule:IgnoreFileAttributes
Конечно, эта сборка должна присутствовать как на исходном, так и на целевом компьютере операции синхронизации.
К сожалению, нет более легкого способа добраться туда!