Category Archives: SharePoint-fejlesztési

HTTP 406 Hiba mikor használ szögletes $http.get ellen SharePoint többi végpontok

Frissítés: Marc AD ndersson rámutatott, ezt a nagy darab info: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. Hogy sok mindent megmagyaráz :).

Lehet, hogy a legrosszabb cím egy blog felad valaha! Anyhoo.

Általában csinálni, minden az én prototípus ellen O365 példány. Nekem van az én-m személyes például úgy, hogy ne kelljen érintő valaki aggódik. Mint egy félre-emlékszik mikor hívjuk végzett, ezen a környéken: virtuális gépek a mi laptopok-és MOSS-SQL Server, IIS, döntés a Hyper-V vs. VMWare? Anyhoo...

Én alakult egy app segítségével szög ebben a környezetben amit csinál, egyebek, Ez:

$http.Get(serverUrl)
.siker(függvény(adatok, állapot, fejlécek, config) {

var getLinksResponse = adatok;

getLinksResponse.value.forEach(függvény(importőrrel) {

// és így tovább és így hab.

Ez volt csak finom környezetben dolgozó két különböző SharePoint online. Azonban, Mikor a kollégám átvittem ez egy Cloudshare-példány, ő volt szerzés egy HTTP 406 hiba (melyik volt az első alkalom, amit valaha kaptam, hogy az egyik, így... yay, azt hiszem). Csináltam egy kis kutatást, és észrevettem, hogy az "Elfogadom" fej le. SharePoint online tökéletesen elégedett volt:

Fogadja el: Application/json

De a cloudshare példány (amely az SP prem, a virtuális kiszolgálón tárolt) szerettem volna a klasszikus "odata = verbose" hozzáadott-ban, valamint:

Fogadja el: Application/json;OData = verbose

Rögzíteni, hogy, adtunk a fejlécben ilyen:

var config = {fejlécek: {
'Accept': "application/json;OData = verbose "
}
};

$http.Get(serverUrl,config)
.siker(függvény(adatok, állapot, fejlécek, config) {

var getLinksResponse = adatok;

getLinksResponse.value.forEach(függvény(importőrrel) {

// és így tovább és így hab.

Hogy megszabadultak az 406, de ez is megváltozott a formátum a válasz. Ez több volt... részletes. (haha!) További módosítások voltak szükségesek, és itt van a végleges eredmény:

var config = {fejlécek: {
'Accept': "application/json;OData = verbose "
}
};

$http.Get(serverUrl,config)
.siker(függvény(adatok, állapot, fejlécek, config) {

var getLinksResponse = adatok;

getLinksResponse.d.Results.forEach(függvény(importőrrel) {

// és így tovább és így hab.

Ez csak esztergált-ba egy 30 perc probléma a számunkra, Tehát mi lucked arra. Remélhetőleg valaki talál ez hasznos.

</vége>

Egyre inkább tudatosodik / Elfogadásának JavaScript keretrendszerek

Az én-m kolléga, Kadarkuti József (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), írt egy rövid összefoglaló blogbejegyzést, keretekre, ő szeret, vagy legalább már használja a SharePoint: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

jQuery úgy tűnik, a győztes a pályán, hogy úgy mondjam, már évek óta, de a többiek is több új és állóképek egyfajta harcoló, mint a szög. (SPServices, természetesen, volt egy élet megmentő éve, és továbbra is úgy gondolom).

Milyen emberek használ? Ők koncentrál inkább a Microsoft szerszám (CSOM / JSOM) vagy inkább szög felé, Kieséses, Izzó fadarab, stb?

Nekem van egy egyre növekvő előítéletek felé ezeket a Microsoft keretek. Azt hiszem, az MSFT dolgokat nehezebb és nehezebb-hoz dolgozik-val, majdnem annyi tanulási görbe, mint a régi stílusú kiszolgálóoldali dev igénylő.

A hozzászólásod itt vagy a feletti Big Apple SharePoint Ha azt szeretné, hogy megvitassák (Big Apple van nagyobb valószínűsége, hogy egy jó beszélgetés).

</vége>

Spinning SharePoint webhely gyűjtemény konfigurációból időzítőfeladatokkal.

Az én-m kolléga, Kajári Patel, írt egy blogbejegyzést leírja a rugalmas időzítő feladat architektúra hogy anyagilag elbír néhány szép rugalmasságot, hogy támogatja a hosszú ideig futó feladatok és/vagy jelentések.  Az ő szavaival élve:

1. Elemezve a kivett fájlok és emlékeztetők küldése az egyének, ha a nap (mivel a fájlt kivették) bizonyos küszöbértéket meghaladja

2. Linkek más tartalom eltávolítása, egy adott tartalom eltávolítása, vagy archivált a rendszer

3. Felhasználó akar-hoz lát a figyelmeztető jelzések, hogy előfizetett a webhelycsoport összes webs

4. Egy emlékeztetők küldése a szerzőknek, hogy vizsgálják felül a tartalmat, amikor egy visszatekintés a tartalom volt megadva, és hogy dátum közeledik

Jól, a lista megy tovább...

– Lásd még a: http://www.bigapplesharepoint.com/ oldalak/View-egy-Insight.aspx?BlogID=40#sthash.7cKuiwly.dpuf

Vannak esetek, a múltam Mikor birtoklás valami ilyesmi lett volna nagyon hasznos.

</vége>

kézikönyv: QUnit.js és Blanket.js egység vizsgálat és teszt lefedettség beállítása egy iroda 365 SharePoint App

Intro

Már vizsgálja egység tesztelése, és a teszt lefedettség a JavaScript, mint én dolgozik-ra egy új SharePoint app SharePoint online, az irodában 365 Suite.  A nyilvánvaló kutatási út vezetett engem Qunit.js és azután, hogy jobb, a Blanket.js.

QUnit hadd beállítása unit tesztek, és csoportosítsa őket modulok.  A modul csak egy egyszerű út-hoz szervez kapcsolódó vizsgálatok. (Nem vagyok benne biztos, én használ ez a tervezettnek, de ez működik nekem eddig eddig van meghatározott kis csoportja).

Blanket.js integrálja, a Qunit, és megmutatja nekem a tényleges sornyi JavaScript-és ami még fontosabb – voltak nem ténylegesen végrehajtott vizsgálatok futtatása során.  Ez az "fedezet"-vonalak, hogy végre tartoznak a vizsgálat míg mások nem.

Jó teszt esetek felállítása és lefedettsége közötti, Mi csökkentheti annak kockázatát, hogy a kód birtokol rejtett hibák.  Jó idő.

Qunit

Feltételezve, hogy a Visual Studio projekt beállítása, Töltse le a JavaScript csomag http://qunitjs.com.  A JavaScript és a CSS megfelelő hozzáadása a megoldáshoz.  Az enyém úgy néz ki mint ez:

image

Ábra 1

Mint te tud lát, Voltam használ 1.13.0 abban az időben ezt a blogbejegyzést írtam. Ne felejtsd el letölteni, és a CSS-fájl hozzáadása.

Hogy az útból, következő lépés, hogy hozzon létre valamilyen teszt felszerszámoz és hivatkozás a Qunit bit.  Én vizsgálat egy csomó funkciók egy kézírás reszelő nevezett "QuizUtil.js", ezért hoztam létre egy HTML-lapot, az úgynevezett "QuizUtil_test.html", mint mutatott-ban:

image Ábra 2

Itt van a kód:

<!DOCTYPE HTML>
<HTML xmlns"http =://www.w3.org/ 1999/xhtml">
<fej>
    <cím>QuizUtil vizsgálat Qunit</cím>
    <Link rel= "stylesheet" href="../CSS/qunit-1.13.0.css" />
    <parancsfájl típus= text/javascript"" src="QuizUtil.js" adatok-fedél></parancsfájl>
    <a parancsfájl típus ="text/javascript" src ="qunit-1.13.0.js"></parancsfájl>
    <a parancsfájl típus ="text/javascript" src ="blanket.min.js"></parancsfájl>

    <parancsfájl>
        modul("getIDFromLookup");
        teszt("QuizUtil getIDFromLookupField", függvény () {
            var goodValue = "1;#Paul Galvin";

            egyenlő(getIDFromLookupField(goodValue) + 1, 2), "Azonosítója [" + goodValue + "] + 1 kell 2";
            egyenlő(getIDFromLookupField(nem definiált), nem definiált, "Definiálatlan bemeneti argumentum vissza undefined eredménye.");
            egyenlő(getIDFromLookupField(""), nem definiált, "Üres bemeneti argumentum kell nem definiált értéket adnak vissza.");
            egyenlő(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;vn"), nem definiált,"Kell mindig vissza egy eredmény kabrió egy egész");
            egyenlő(getIDFromLookupField("2;#más személy"), "2", "Ellenőrzése [2;#más személy].");
            egyenlő(getIDFromLookupField("9834524;#hosszú érték"), "9834524", "Nagy érték teszt.");
            notEqual(getIDFromLookupField("5;#bárki, aki", 6), 6, "-A notEqual vizsgálat (5 nincs egyenlő 6 Ez a minta: [5;#bárki, aki]");

        });

        modul("htmlEscape");
        teszt("QuizUtil htmlEscape()", függvény () {
            egyenlő(htmlEscape("<"), "&lt;", "Menekülés a kevesebb, mint üzemeltető ('<')");
            egyenlő(htmlEscape("<div class =  "someclass">Néhány szöveg</Div>"), "&lt;div class =&quot;someclass&quot;&gt;Néhány szöveg&lt;/Div&gt;", "Bonyolultabb teszt karakterláncot.");
        });

        modul("getDateAsCaml");
        teszt("QuizUtil getDateAsCaml()", függvény () {
            egyenlő(getDateAsCaml(új Dátum("12/31/2013")), "2013-12-31T:00:00:00", "Vizsgálati fixen kódolt dátuma: [12/31/2013]");
            egyenlő(getDateAsCaml(új Dátum("01/05/2014")), "2014-01-05T:00:00:00", "Vizsgálati fixen kódolt dátuma: [01/05/2014]");
            egyenlő(getDateAsCaml(új Dátum("01/31/2014")), "2014-01-31T:00:00:00", "Vizsgálati fixen kódolt dátuma: [01/31/2014]");
            egyenlő(getTodayAsCaml(), getDateAsCaml(új Dátum()), "getTodayAsCaml() kell egyenlő getDateAsCaml(új dátum())");
            egyenlő(getDateAsCaml("képtelenség-érték"), nem definiált, "Próbálj nonszensz érték dátuma.");
            egyenlő(getDateAsCaml(nem definiált), nem definiált, "Próbálj meg időpontjában a [nem definiált] dátum.");
        });

        modul("getParameterByName");
        teszt("QuizUtil getParameterByName (a lekérdezési karakterláncban)", függvény () {
            egyenlő(getParameterByName(nem definiált), nem definiált, "Próbálj meg nem definiált paramétert kell vissza undefined.");
            egyenlő(getParameterByName("nem létezik"), nem definiált, "Megpróbál-hoz kap a paraméter értékét, ha tudjuk, hogy a paraméter nem létezik.");

        });

        modul("Cookie-k");
        teszt("QuizUtil különböző cookie-funkciók.", függvény () {
            egyenlő(setCookie("teszt", "1", -1), getCookieValue("teszt"), "Kap egy cookie-t be kell dolgozni.");
            egyenlő(setCookie("anycookie", "1", -1), igaz, "Beállítás érvényes főzés vissza"igaz".");
            egyenlő(setCookie("őrült cookie-név !@#$%"%\^&*(()?/><.,", "1", -1), igaz, "Egy rossz cookie-név beállítást vissza kell"false".");
            egyenlő(setCookie(nem definiált, "1", -1), nem definiált, "Tompított meghatározatlan, mint a cookie-név.");
            egyenlő(getCookieValue("nem létezik"), "", "Cookie nem létezik vizsgálati.");
        });

    </parancsfájl>
</fej>
<szerv>
    <Div azonosító= "qunit"></Div>
    <Div azonosító= "qunit-kellék"></Div>

</szerv>
</HTML>

Van néhány dolog történik itt:

  1. Hivatkozva az én-m kód (QuizUtil.js)
  2. Hivatkozó Qunity.js
  3. Némely elemek meghatározása (getIDFromLookup, A cookie-k, és mások)
  4. Elhelyezése a <Div> akinek azonosítás "qunit".

Majd, Csak húzza, fel ezt az oldalt és Ön kap valamit, mint ez:

image

Ábra 3

Ha megnézed, a tetején, van néhány lehetőség, melyek közül kettő is érdekes:

  • Hide teszt: Elég nyilvánvaló.  Segíthet a szem csak látni a problémás területek, és nem sok rendetlenséget teremt.
  • Modul: (legördülő): Ez kiszűri a vizsgálatok csak azok a csoportok, teszttípusokat le.

Mivel a vizsgálatokat maguk – néhány megjegyzést:

  • Magától értetődik, hogy meg kell írni a kódot, hogy tesztelhető az első helyen.  Az eszközzel segíteni érvényesíteni a fegyelem. Például, Volt egy úgynevezett "getTodayAsCaml funkció()”.  Ez nem nagyon tesztelhető, mivel nincs bemeneti argumentum tart és kipróbálni, hogy az egyenlőség, azt kell, hogy folyamatosan frissíti a teszt-kódot, hogy az tükrözze az aktuális dátumot.  Én refactored, összeadás egy adat bemeneti paramétert, majd az aktuális dátumot, ha akarom, hogy mai CAML formátumban elhaladtak.
  • Qunit keretében dokumentumokat a saját vizsgálatok, és úgy tűnik, elég erős.  Tehetünk, egyszerű dolgok, mint a tesztelés az egyenlőséget, és is birtokol támogat részére ajax style hívások (mind a "valódi", vagy a csúfolt segítségével a kedvenc mocker).
  • Megy keresztül a folyamat is arra kényszerít, hogy gondolja végig, hogy edge esetek-mi történik a "meghatározatlan", vagy null átment egy függvény.  Ez teszi halott egyszerű teszt forgatókönyvekben ki.  Jó dolog.

Blanket.js lefedettség

Blanket.js kiegészíti Qunit nyomon követése a tényleges sornyi kódot, ami fut a vizsgálat során.  Azt integrálja jobb Qunit még akkor is ha-a ' egy egész külön app, játszik szépen-ez igazán néz ki, mint egy varrás nélküli alkalmazás.

Ez a blanket.js akcióban:

image Ábra 4

image

Ábra 5

(Valójában van, hogy kattintson a "Engedélyezi a lefedettség" jelölőnégyzetre, a tetején [ábra 3] hogy ezt a lehetőséget.)

A kijelölt vonalak ábrán 5 nem hajtottak akármi-ból az én-m teszt, így kell, hogy dolgozzon ki egy teszt, hogy okoz számukra, hogy végre, ha azt akarom, hogy teljes lefedettség.

Blanket.js dolgozik, az alábbi lépéseket kap:

  1. Letölt ez-ból http://blanketjs.org/.
  2. Hozzáadása a projekthez
  3. Frissítse tesztoldalát hám (Az én esetemben QuizUtil_test.html) az alábbiak szerint:
    1. Hivatkozás a kód
    2. Díszíteni a <parancsfájl> referencia, mint ez:
    <parancsfájl típus= text/javascript"" src="QuizUtil.js" adatok-fedél></parancsfájl>

Blanket.js felveszi a "adatok-cover" attribútum, és nem a mágikus.  Ez akaszt-ba Qunit, frissíti a felhasználói felület, hogy "A lefedettség engedélyezése" lehetőséget, és voál!

Összefoglaló (TL; DR)

Használ Qunit-hoz ír a teszt esetek.

  • Letölt ez
  • Hozzáadása a projekthez
  • Írjon egy teszt felszerszámoz oldalon
  • Hozzon létre a vizsgálatok
    • Refactor, néhány, a kódot, hogy tesztelhető
    • Kreatív!  Gondolom, az őrült, lehetséges forgatókönyvek és a vizsgálati őket egyébként.

Lefedettség biztosítása blanket.js segítségével

  • Győződjön meg róla, Qunit dolgozó
  • Töltse le a blanket.js, és hozzáadása a projekthez
  • Add hozzá a tesztoldal hám:
    • Blanket.js hozzáadása
    • Adjunk hozzá egy "adat-cover" attribútumot a <parancsfájl> címke
  • Fuss a Qunit-teszt.

Soha nem tett akármi-ból ez előtt, és volt néhány kezdetleges dolog, egy maroknyi órát dolgozik. 

Boldog tesztelés!

</vége>

undefinedSubscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList és a "érték nem lehet null”

Ma rájöttem, hogy a GetList() a módszer lists.asmx webszolgáltatás nagyon óvatosan elnevezése vagy elterült-hoz dob egy rejtélyes "Értéke nem lehet null" kivétel (és hogy feltételezve, tudod kap múlt a még rosszabb általános hibaüzenet, "Kivétel típusú ' Microsoft.SharePoint.SoapServer.SoapServerException’ was thrown.")  Kifejezetten, Úgy találtam, hogy bármilyen típusú előtag GetList módszer nem biztosítható.  A következő jQuery objektumdarab illusztrálja a lényeg:

image

Ha csinálsz, hogy, "Értéke nem lehet null", per ez válaszol a webes szolgáltatás Fiddler-Amennyiben a HTTP transcript:

<?XML-verzió = "1.0" kódolás = "utf-8"?>
  <szappan:Boríték
     xmlns:SOAP ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <szappan:Szerv>
    <szappan:Hibatűrés>
      <faultcode>szappan:Kiszolgáló</faultcode>
      <faultstring>
        Kivétel típusú ' Microsoft.SharePoint.SoapServer.SoapServerException’ keletkezett..
      </faultstring>
      <Részletek>
        <ErrorString xmlns ="
http://schemas.microsoft.com/SharePoint/SOAP/">
Értéke nem lehet null..
        </ErrorString>
      </Részletek>
    </szappan:Hibatűrés>
  </szappan:Szerv>
</szappan:Boríték>

természetesen, valószínűleg nem adhat a "s0" előtag a saját, egyes eszközök elterült-hoz csinál ez, de (Holdas mint).

Ez még inkább zavaró a / frusztráló, mert más módszerek elviselni előtagok.  Például, a GetListCollection a módszer nem zavarja, ha azt nem lett előzi meg, még az olyan nonszensz előtaggal, mint "xyzzy":

image

Ez "értéke nem lehet null" úgy tűnik meglehetősen közös lists.asmx, így remélhetőleg ez segít valaki ki a jövőben a.

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Végtelenül beágyazása <Div> Címkék és jQuery

Ez úgy tűnik, mint a oddball téma, Nem vagyok biztos benne, tényleg megéri blogging körülbelül, de amit soha nem leállt előtt nekem, so here we go Mosoly

Dolgozom a projekt, ahol vagyok húz a keresésből néhány adat, XML-üzenetet, majd az XML csomagolás végső soron részszabványokat HTML keresztül XSLT.  Van egy csomó jQuery érintett, egy kicsit néhány bejárási funkciót valósítja meg.  Ha rákattint egy lapon (valóban, egy <Div>), jQuery meghívja .hide() és .show() a különböző div-ekre (a kezdeti oldal teher letöltések minden tartalom, így van ebben az esetben nem a visszaküldések).

Egy csomó órával ezelőtt, Váltás a logikai lap kezdett kiszámíthatatlanul viselkednek, és ez nem mutat én a fülek egyikére.  Én végül nyomon azt le arra a tényre, hogy az internet explorer (legalább) azt hitte, hogy a <Div> messze egymásba ágyazott címkék, sokkal mélyebb, mint a tervezett.A fejlesztő eszköztár volna megjelenítése:

-<Div id = "Tab1Content">
  -<Div>
    -<Div>
      -<Div id = "Tab2Content">
        -<Div>
           …………………………
                   </Div>  <— Végül mutatja azt bezárták minden módon itt!

Így, én tett egy $("# Tab1Content").elrejtése(), Azt is elrejtheti az Tab2 és lehetett soha nem mutatni Tab2 ha nem is show Tab1.  Én fénymásoló és tészta a kód-ba visual studio, és megmutatta a div vonalba minden szépen, csak szeret ők voltak feltételezett-hoz csinál, mint ez keres:

-<Div id = "Tab1Content">
  +<Div>
  +<Div>
-<Div id = "Tab2Content">
  +<Div>
  +<Div>

Üt a fejem ellen a fal egy darabig, és észrevettem, hogy a tényleges HTML kódot generáló volt sok üres <Div> Címkék, mint:

<szerv>

  <Div id = "Tab1Content">

    <Div id = "row1" />
    <Div id = "row2" />

  </Div>

  <Div id = "Tab2Content">

    <Div id = "row1" />
    <Div id = "row2" />

  </Div>

</szerv>

(A fenti túlegyszerűsített waaaaaaaaaaaay.  Az üres div címkék teljesen érvényesek. Néhány én <Div> Címkék voltak teljes tartalom, de nem volt sok több.  Azért jöttem, hogy a megvalósítás, az én-m <XSL:for each> irányelvek kibocsátó voltak a rövid alakos div címkék, amikor az xsl:for each nem ' minden adat megkereséséhez.  A kimeneti HTML-megjegyzés kénytelen azt, Amint:

image

 

Után tett amit, a div szépen oszlopszélességeket és én fülre-kapcsol kezdett el dolgozni.

Mint mindig, Remélem, ez segít valaki, egy csipet.

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Egy ok esetében a "a hiba létrehozója nem adott meg okot.”

Amit csinál sok munka SharePoint keresési mostanában, és a kifejezetten az KeywordQuery osztály, Tulajdonságok és metódusok.

Ha azt szeretné, hogy az eredményhalmazt ad vissza eredményt, a szokásos gyanúsítottak túlmutató (lásd itt), a SelectedProperties gyűjtemény hozzáadása, mint a:

myKeywordQuery.SelectProperties.Add("xyzzy");

Sok köszönet és egy tipp, hogy kalap Corey Roth és Ez rendkívül hasznos blogbejegyzést (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Az én esetemben, "xyzzy" nem kezelt tulajdonsághoz ténylegesen.  Amikor azt is Hozzáadtam SelectedProperties egyébként, SharePoint dobta egyik kedvenc valaha runtime kivételek:

"A hiba létrehozója nem adott meg okot."

Én különösen, mint a tőke "R" okát.  Ez úgy hangzik, hogy nekem, mint a.NETTÓ egyenértékű"Nekem van nem száj, és azt kell scream.”

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Kéznél levő hivatkozás: Alapértelmezett KeywordQuery Keresés eredménye

Amikor elindítania a végrehajtás() a módszer egy KeywordQuery, egy ResultType.RelevantResults alapuló ResultTable hozhat létre.  Ez a kódrészlet szemlélteti, hogy mit jelent:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Az eredményül kapott táblát lesz a következő oszlopok információk: 

Munkaazonosító
Rank
Cím
Szerző
Mérete
Elérési út
Leírás
Írás
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Ez a lista azt levezetni egy SharePoint 2010 környezet, Enterprise edition.  Remélhetőleg ez lesz hasznos, hogy valaki a jövőben.

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Egyik oka: „Nem sikerült a megoldás a cab-fájl kicsomagolása”

A visual studio-kijelző közben projekt ma, Én tett egy kisebb re-org néhány fájlt a telepítési folyamat részeként a _layouts mappában kell forgalomba. Kifejezetten, I. átnevezték a .js fájl "TypeAhead származó"TypeAhead.js"(régi).js"  Terv, távolítsa el azt, amint az utódja, "TypeAhead.js" helyes bizonyul.  Úgy nézett ki, mint ez:

image

Ez azonnal a visual studio problémát okoztak, amikor megpróbáltam telepíteni a projekt:

Hiba történt a telepítési lépés megoldás hozzáadása: Nem sikerült a megoldás a cab-fájl kicsomagolása.

Kiderül, hogy Önnek kellene nem tesz egy zárójelet a fájlnevekben.  Eltávolítottam a parens, és hogy megfejt a probléma.

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin