MSBuild памылка «CSC: памылка CS2001: Зыходны файл" х "не можа быць знойдзены» з Linked Files пасля абнаўлення да Visual Studio 2012

Пасля аўтаматычнага абнаўлення файла праекта для .Net 4.0 вэб-прыкладанні для працы з Visual Studio 2012 Усе працавала нармальна на першы, аднак пры кампіляцыі я атрымаў шмат памылак, як гэта:

<�Р> Апісанне: Зыходны файл '.. \ .. \ .. \ .. \ .. \ File Path' не можа быць знойдзена      <�Р> Выява: CSC

І пры спробе пабудаваць з дапамогай MSBuild (праходжанне толькі праект поўны шлях, без якіх-небудзь дадатковых параметраў) у «Распрацоўшчык каманднага радка для VS2012» я атрымаў у асноўным тыя ж памылкі:

<�Р> "CSC: памылка CS2001: Зыходны файл 'х' не можа быць знойдзены"

Усе памылкі ставяцца да Linked Files (ASPX, ССТ, і г.д.), размешчаных у іншых вэб-прыкладанняў праектаў, размешчаных на іншы глыбіні нашага кода аддзялення (менавіта таму ўсе «.... \" у пачатку са шляхоў)

To me it looks like a problem with the file Length, I had the same problem a while ago when building the projects on our CI server using MSBuild, I was able to manage it by manipulating the project files before building them using a custom script without the need to move the branch around or reduce the deep of the projects, I didn't have to move anything, the important thing at the time it was that developers using Visual Studio 2010 could compile everything without problems. I learned by this that compiling/Building with MSBuild was different that with DevEnv/VS, and for example MSBuild didn't support building Setup projects and DevEnv did.

Так як гэта адбываецца цяпер з VS 2012/Devenv 2012, плюс, што VS 2012 г. Не падтрымлівае праекты ўстаноўкі больш (напрыклад, MSBuild), плюс VS/Devenv маюць тыя ж праблемы з даўжынёй файла, ён выглядае як VS 2012 Яго, нарэшце, з дапамогай MSBuild пад капотам або больш цесна інтэграваныя, але я не знайшоў ні аднаго артыкула, каб пацвердзіць гэта.

Змяненне галіновай структуры/змяненне глыбока праектаў гэта не варыянт прама цяпер з-за некалькіх прычын (вялікі код базы, вялікая колькасць праектаў, рызыка, тэрміны, намаганняў і г.д.).

Ці ёсць хто-то ёсць альтэрнатыўнае рашэнне або рашэнне гэтай праблемы ў Visual Studio 2012?

З павагай,

PD: Дарэчы, я ўжо праверыў гэтае паведамленне MSBuild памылка са звязанымі файламі , але як я ўжо казаў змена шляхоў, яго не варыянт прама цяпер.

32
Як ваша працоўная прастора адлюстравання налады для гэтага праекта? Ці ёсць карта корань каманды праекта? Каранёвая філіял? Subfolder кораня галіны? Дзе? d: \? C: \ Users \ імя карыстальніка \ Documents \ Visualstudio2012 \ Projects? Там могуць быць спосабы выкруціцца з гэтага. Што тычыцца Вашага пытання аб больш цеснай інтэграцыі MSBuild, ды Visual Studio аб'ядноўвае ўсё лепш і лепш у MSBuild.
дададзена аўтар jessehouwing, крыніца
Тое ж пытанне, акрамя зыходнага файла «» (пуста)
дададзена аўтар nathanchere, крыніца
Я ведаю, што гэтае пытанне быў апублікаваны каля года таму, але я магу пацвердзіць, што ёсць праблема даўжынёй файла, калі справа даходзіць да спасылкі зыходных файлаў, спасылкі на файлы ў Visual Studio 2012. Я сутыкнуўся з гэтым пытаннем пару дзён таму загадкава, і не мог «т зразумець, чаму Рашэнне Explorer быў у стане паказаць файлы, але кампілятар (CSC) былі праблемы з пошукам іх. Спадзяемся, што гэта зафіксавана ў VS2013?
дададзена аўтар ajawad987, крыніца
Тая ж праблема тут, спадзяюся, хто-то можа праліць некаторы святло на гэтую праблему
дададзена аўтар Mtz, крыніца

7 адказы

Паспрабуйце атрымаць Журналы зборкі,

<�Р> http://msdn.microsoft.com/en-us/ бібліятэка/VStudio/ms171470.aspx

здаецца, што CSC задача не можа знайсці зыходны файл. Адной з прычын яго дапамогай вы імпартаваць няправільны файл. так што вы павінны адрэдагаваць файл праекта з дапамогай нармальнага тэкставага рэдактара.

4
дададзена

Я знайшоў рашэнне гэтай праблемы, калі вы звязаны файл, вы адносны шлях распазнана MSBuild і вярнуцца адтуль стаць ваш шлях у доўгім шляху, аднак вы можаце змяніць яго ў вызначэнні праекта рабіць правай кнопкай мышы/выгрузіць праект/і змяніць шлях ад ../../../ на $ (SolutionDir) /../ .. , пакуль не знойдзеце файл на спасылку, заўвага: гэта распаўсюджваецца сімвал ад 255 да 300 знака.

2
дададзена
гэта дапамагло мне, я выявіў, што ў нас былі розныя версіі, якая паказвае ў csproj файле і не было ніякага пакета даступныя ў пакетах. VS ніколі не скардзіўся, што ні dowloaeded яго
дададзена аўтар zish, крыніца

Добра, я стукнуў гэтага і вырашыў яго сёння. Я знайшоў яго, вынікаючы падручнік MSDN ( HTTPS: //msdn.microsoft.com/en-us/library/ms379563%28v=vs.80%29.aspx ) і вось каманда, якая зламала мне:

csc /t:library /out:MyCodeLibrary.dll simpleType.cs

Даючы мне паведамленне

error CS2001: Source file 't:librabry' could not be found

Які працаваў пасля змены першапачатковай каманды на наступнае:

csc /target:library /out:MyCodeLibrary.dll simpleType.cs

Я не ведаю, чаму кароткая версія/мэтавай сцяг выклікае гэтую памылку, але я не знайшоў нідзе ў Інтэрнэце адзначыць гэтую прычыну, а менавіта так я хацеў запісаць яго тут.

1
дададзена

Я ведаю, што я зрабіў гэта пытанне некаторы час таму, але за тое, што варта, падыход, які мы, нарэшце, пайшоў быў:

  • Як знайсці файлы, якія былі прадстаўлены як занадта доўга.
  • Знізіць поўную даўжыню шляху гэтых файлаў, памяншаючы даўжыню імя і/або даўжыня тэчкі кантэйнера або памяншэнне ўкладзенасці тэчак ўзровень. Таму памяншэнне поўнай даўжыні шляху.
  • Абнаўленне сувязяў змененых файлаў (паўторнае звязванне) на залежных праектаў.

Гэта вырашыла праблему з Visual Studio 2012 г. на працоўных станцыях распрацоўшчыкаў і на нашых серверах CI/Deploy, якія выкарыстоўваюць MSBuild.

Для майго сцэнара гэтага падыход быў менш рызыкоўным, і мяркуе менш намаганняў, чым перасоўванне поўных праектаў/рашэнняў для зніжэння іх ўзроўню ўкладзенасці тэчак або скарачэння імёнаў тэчак, і неабходна абнавіць ўсе спасылкі з залежных праектаў/рашэнняў.

1
дададзена
  1. Пераканайцеся, што ў вас ёсць апошняя версія звязаных файлаў з іншых праектаў. Visual Studio не будзе аўтаматычна атрымаць іх, калі яны належаць да іншага праекту.
  2. Пераканайцеся, што звязаныя шляху сапраўды правільна. Вы можаце адсочваць, якія файлы VS.NET і MSBUILD спрабуюць атрымаць доступ з дапамогай інструмента SysInternals ProcMon (фільтр на імёны працэсаў і адфільтраваць усё поспехі)
  3. Калі вы падазраяце, што даўжыня шляху праблема (гэта будзе відаць у інструменце ProcMon), вы можаце паспрабаваць скараціць іх, звязваючы абсалютны шлях (C: \ X \ Y \ Z) замест адносны шлях (...... \ Z). Размяшчэнне звязаных файлаў можа затым застаецца нязменным.
0
дададзена

Мой 2 цэнта гэтай праблемы ... У маім выпадку, у мяне быў файл, створаны ў адным праекце (г.зн. ConfigModel), і я меў спасылку на гэты файл у іншым праекце, але калі я пераназваў файл ConfigModel ў першым праекце LoginModel для напрыклад, ён не перайменаваць спасылку ў другім праекце выклікае адбыцца гэтая памылка.

0
дададзена

Гэтая праблема ўзнікла ў мяне, калі я вярнуўся да больш ранняй версіі рэпазітара Git. Мабыць, я не дадаваў файл праекта РЭПО таму, калі ён вярнуўся ён не вернецца файл праекту таксама. Тое, што я зрабіў, каб ачысціць яго было выключыць які адсутнічае .cs файл з праекту, націснуўшы на адсутны файл у праекце Explorer. Гэта было лёгка знайсці, так як ён быў адзначаны трохвугольнікам. Затым перабудоўваць ўвесь раствор.

0
дададзена