के रूप में चलाने पर SharePoint स्क्रिप्ट विफल हो जाती है मैंने एक स्क्रिप्ट लिखी है जो दस्तावेज़ लायब्रेरी में कुछ परीक्षण डेटा डालती है। मैं विजुअल स्टूडियो 2010 में पोस्ट-परिनियोजन चरण के रूप में इसका उपयोग करना चाहता हूं, ताकि & को वापस लेने के बाद लाइब्रेरी खाली न हो।विजुअल स्टूडियो पोस्ट-परिनियोजन कमांड
स्क्रिप्ट के प्रासंगिक अंश इस प्रकार हैं:
Install.ps1:
$scriptDirectory = Split-Path -Path $script:MyInvocation.MyCommand.Path -Parent
. "$scriptDirectory\Include.ps1"
$webUrl = "http://localhost/the_site_name"
$web = Get-SPWeb($webUrl)
...
Include.ps1:
function global:Get-SPSite($url)
{
return new-Object Microsoft.SharePoint.SPSite($url)
}
function global:Get-SPWeb($url,$site)
{
if($site -ne $null -and $url -ne $null){"Url OR Site can be given"; return}
#if SPSite is not given, we have to get it...
if($site -eq $null){
$site = Get-SPSite($url);
...
}
यह ठीक काम करता है जब चलाने के रूप में इस प्रकार से कमांड लाइन, विजुअल स्टूडियो को फिर से तैनात करने के तुरंत बाद:
powershell \source\ProjectFiles\TestData\Install.ps1
हालांकि, यह जब मैं दृश्य स्टूडियो में SharePoint परियोजना के गुणों में एक के बाद तैनाती आदेश पंक्ति के रूप में ठीक उसी आदेश का उपयोग काम नहीं करता:
Run Post-Deployment Command: New-Object : Exception calling ".ctor" with "1" argument(s): "The Web applicati on at http://localhost/the_site_name could not be found. Verify that you have t yped the URL correctly. If the URL should be serving existing content, the syst em administrator may need to add a new request URL mapping to the intended appl ication." At C:\source\ProjectFiles\TestData\Include.ps1:15 char:18 + return new-Object <<<< Microsoft.SharePoint.SPSite($url) + CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvoca tionException + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.Power Shell.Commands.NewObjectCommand
दिलचस्प है, मैं त्रुटि पुन: पेश कर सकते हैं अगर मैं चलाने के कमांड लाइन पर:
c:\windows\Syswow64\WindowsPowerShell\v1.0\powershell \source\ProjectFiles\TestData\Install.ps1
हालांकि, बाद तैनाती आदेश में विफल रहता है, भले ही मैं स्पष्ट रूप से \windows\System32\WindowsPowerShell\v1.0\powershell
और \windows\Syswow64\WindowsPowerShell\v1.0\powershell
चलाते हैं।
अद्यतन: समाधान पाया
मैं यहाँ पर चर्चा की एक करने के लिए इसी तरह की एक समस्या हो रही हो रहे हैं:
मैं एक 64-बिट SharePoint का उपयोग कर एपीआई उपयोग नहीं कर सकते 32-बिट ग्राहकों। चूंकि विजुअल स्टूडियो 32-बिट है, पोस्ट-परिनियोजन कार्रवाई 32-बिट प्रक्रिया में चलती है और विफल हो जाएगी। हालांकि, 64-बिट एमएसबिल्ड है। अगर हम इसे PowerShell स्क्रिप्ट चलाते हैं, तो सब ठीक है।
एक MSBuild में स्क्रिप्ट इस जैसे फाइल लपेटें:
%WinDir%\Microsoft.NET\Framework64\v4.0.30319\MSBuild $(SolutionDir)\ProjectFiles\TestData\Install.msbuild
धन्यवाद। तो मैं दौड़ने की कोशिश कर रहा हूं: "पावरहेल Invoke-Command-ConfigurationName माइक्रोसॉफ्ट। पावरशेल-कंप्यूटर उपयोगकर्ता LOCALHOST -FilePath C: \ source \ ProjectFiles \ TestData \ Install.ps1"। दुर्भाग्यवश, यह मेरी लिपि को पहली पंक्ति में विफल कर देता है, जहां मैं अन्य ps1 फ़ाइल समेत हूं: पैरामीटर 'पथ' पर तर्क बाध्य नहीं कर सकता क्योंकि यह शून्य है। जाहिर है, $ स्क्रिप्ट: Invoc-Command का उपयोग करते समय MyInvocation काम नहीं करता है। –