आप आईआईएस की तरह फ्लैट संरचना के लिए PackageLocation
के बजाय _PackageTempDir
उपयोग कर सकते हैं, लेकिन आप ज़िप रखने के लिए और प्रकट होता है के साथ .cmd करना चाहते हैं तो नहीं, तुम नहीं वास्तव में पूर्ण पथ से दूर Microsoft.Web पुनर्लेखन के बिना प्राप्त कर सकते हैं Var का उपयोग करने के तरीके के कारण .ublishing.targets या कस्टम कार्य।
<_PackageTempDir>$(PackageTempRootDir)\PackageTmp</_PackageTempDir>
<_PackageTempDirFullPath>$([System.IO.Path]::GetFullPath($(_PackageTempDir))</_PackageTempDirFullPath>
<_MSDeployDirPath Include="$(_PackageTempDir)" />
<_MSDeployDirPath_FullPath>@(_MSDeployDirPath->'%(FullPath)')</_MSDeployDirPath_FullPath>
आप तथापि MSBuild चाल और एक स्थानीय हिस्सेदारी के साथ निरपेक्ष पथ छुपा, कुछ इस तरह से एक छोटा सा यह समतल कर सकते हैं:
net share foo=D:\Temp
msbuild WebApplication1.csproj /t:Package /p:PackageTempRootDir=\\localhost\foo
ऐसा ही कुछ करने के लिए अपने गहरे स्थानीय पथ बदल देंगे obj\Debug\Package\WebApplication1.zip\Content\_S_Slocalhost_Sfoo\PackageTmp
स्रोत
2012-06-12 00:49:03
पैकेज_PempRootDir को _PackageTempDir पर क्यों सेट करें? –
@ScottStafford कोई कारण नहीं, बस एक और विकल्प। मैं बाद में अनावश्यक डबल पैकेजिंग और कभी-कभी सिम्लिंक को रोकने के लिए सीधे 'पाइपलाइन प्रीडियोकॉपी कॉपीऑफफाइल टॉऑनफोल्डर' का उपयोग करने के लिए आगे बढ़ गया। –
उस समाधान को देखने के लिए उत्सुक ... यह एक तरीका हमारे लिए बहुत अच्छा काम करता है .. –